<asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
        <table></HeaderTemplate>
        <ItemTemplate>
        <tr><td><asp:CheckBox runat="server" ID = "chk"></asp:CheckBox></td>
        <td><%#DataBinder.Eval(Container.DataItem,"id") %></td>
        </tr>
        </ItemTemplate>
        <FooterTemplate>
        </table></FooterTemplate>
</asp:Repeater>怎么选中CHK时,得到对应ID

解决方案 »

  1.   

    你建议你把那个id用label来绑定
    则你可以用findcontrol(“”)方法来定位了!
      

  2.   

    <asp:CheckBox runat="server" ID = "chk" value='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:CheckBox></td>
      

  3.   

    <ItemTemplate>
    <tr>
    <td>
    <asp:CheckBox runat="server" ID="chk"></asp:CheckBox></td>
    <td id="td1" runat="server"><%#DataBinder.Eval(Container.DataItem,"id") %></td>
    </tr>
    </ItemTemplate>
    ********************
     private void Button1_Click(object sender, System.EventArgs e)
            {
                for(int i=0;i<this.Repeater1.Items.Count;i++)
                {
                    CheckBox cb = (CheckBox)this.Repeater1.Items[i].FindControl("chk");
                    System.Web.UI.HtmlControls.HtmlTableCell td = (HtmlTableCell)this.Repeater1.Items[i].FindControl("td1");
                    if(cb.Checked)
                        Response.Write(td.InnerText);
                        
                }
            }
      

  4.   

    System.Web.UI.HtmlControls.HtmlTableCell td = (HtmlTableCell)this.Repeater1.Items[i].FindControl("td1");=========================================
    这个找不到
      

  5.   

    在绑定的时候加一个<input type="hidden" id="SelectedID" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' NAME="SelectedID"/>在代码页中检查CheckBox是否被选中,如果选中了的话就用FindControl来查找SelectedID来得到其value
      

  6.   

    System.Web.UI.HtmlControls.HtmlTableCell td = (HtmlTableCell)this.Repeater1.Items[i].FindControl("td1");=========================================
    这个找不到===================================================================================
    你可以这样来做,建议多看看msdn or sdk.一下代码在vs2003下可以。对2005没用过,不过我想应该没问题,
    System.Web.UI.WebControls.CheckBox chkExport ;
    foreach(RepeaterItem item in Repeater1.Items)
    {
         chkExport = (CheckBox)item.FindControl(CheckBox的ID);
         if( chkExport.Checked)
    {
        string sID = ((HtmlInputHidden)item.FindControl(SelectedID)).Value }
      

  7.   

    晕哦。还没解决?我以上的代码绝对可行。我在用DataGrid的时候也是这样写的。没任何问题。