<asp:DataList ID="DataList1" runat="server">
      <ItemTemplate>
      <%# Eval ("id") %>
     <asp:Button ID="Button3" runat="server"  Text="删除"  onclick="Button3_Click" />
      </ItemTemplate>
    </asp:DataList>
如何在单击事件发生后,获取到ID值啊???本人想了一个法子用这样的方法
    <asp:DataList ID="DataList1" runat="server">
      <ItemTemplate>
      <asp:Label ID="Label1" runat="server" Text='<%# Eval ("id") %>' ></asp:Label>
     <asp:Button ID="Button3" runat="server"  Text="删除"  onclick="Button3_Click" />
      </ItemTemplate>
    </asp:DataList>
然后,后台这样:
Label label = (Label)DataList1.Controls[0].FindControl("Label1");
label.text,这样获取的只是第一个值的ID,所以数报出的都是第一个值的ID,这样好像不行啊???求方法。。

解决方案 »

  1.   

    你先找到button 再找到label
      

  2.   

    DataListItem dl = (sender as Button).Parent as DataListItem;
                Label l = dl.FindControl("Label1") as Label;
      

  3.   

    Label label = (Label)DataList1.FindControl("Label1");
    就可以了吧
      

  4.   

    在Button3_Click中调用删除的方法之前这样写:
    Label label = (Label)DataList1.FindControl("Label1");
    好像可以吧
      

  5.   


      DataListItem dl = (sender as Button).Parent as DataListItem;
      Label lbl = dl.FindControl("Label1") as Label;
      string strTxt=lbl.text;
      

  6.   

    可能是我才疏学浅啊。
    在datalist中点控件是点不出来单击事件的。
    我的方法是这样的。前台的。
    <asp:Button ID="Button2" CommandName="delete" runat="server" Text="删除" />
    后台的。
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            int id = int.Parse((e.Item.FindControl("Label1") as Label).Text);
        }