中继器中的复选框

LIX*_*LIX 1 .net c# asp.net checkbox repeater

我在每个项目中都有一个中继器和一个未绑定的复选框。我要为已检查的项目做一些事情。但是问题出在这里!当我单击转发器外部的按钮时,仅页面刷新,而没有任何反应。

这些是我的代码:

<asp:Repeater ID="Repeater1" runat="server" >    
           <ItemTemplate>
               <asp:CheckBox ID="ChBox" runat="server" />
               <asp:Label ID="rptBody" runat="server" Text='<%#Eval("subject") %>
               <hr />
           </ItemTemplate>
    </asp:Repeater>
    <asp:Button ID="btnDelete" runat="server" Text="Delete" Width="90px"     onclick="btnDelete_Click" />
Run Code Online (Sandbox Code Playgroud)

cs文件中的代码:

  protected void btnDelete_Click(object sender, EventArgs e)
        {
             foreach (RepeaterItem item in Repeater1.Items)
            {
                CheckBox ch = item.FindControl("ChBox") as CheckBox;
               if (ch.Checked)
                {
                   ch.Text = "IT is selected now";
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

Muh*_*tar 5

我认为您所缺少的是,您应该在页面不回发时绑定或设置数据源

if (!Page.IsPostBack)
    {
        rpt.DataSourceID = "";
        rpt.DataBind();
    }
Run Code Online (Sandbox Code Playgroud)

我认为您的情况正在发生,在回发时,转发器被重新绑定。