C# 中继器复选框从未被视为已选中

C# 中继器复选框从未被视为已选中,c#,repeater,C#,Repeater,我正在尝试查看哪个复选框被选中,哪个未被选中(只是一行项目,它是“是”或“否”) 我的HTML标记是: <asp:Repeater runat="server" ID="rptProducts" OnItemDataBound="rptProducts_ItemDataBound"> <ItemTemplate> <div class="panel panel-default"> <div class="pan

我正在尝试查看哪个
复选框被选中,哪个未被选中(只是一行项目,它是“是”或“否”)

我的HTML标记是:

<asp:Repeater runat="server" ID="rptProducts" OnItemDataBound="rptProducts_ItemDataBound">
    <ItemTemplate>
        <div class="panel panel-default">
          <div class="panel-heading">  <%# DataBinder.Eval(Container.DataItem, "ProdType") %> </div>
          <div class="panel-body">
            <%# DataBinder.Eval(Container.DataItem, "ProdName") %>: 
              <asp:CheckBox runat="server" ID="cbSelected" Text="Yes" />
              <asp:TextBox runat="server" ID="txtGroupName"></asp:TextBox>
          </div>
        </div>
  </ItemTemplate>
</asp:Repeater>

: 
守则:

if (rptProducts.Items.Count > 0)
{
    for (int count = 0; count < rptProducts.Items.Count; count++)
    {
        foreach (RepeaterItem item in rptProducts.Items)
        {
            CheckBox ch = item.FindControl("cbSelected") as CheckBox;
            TextBox tb = item.FindControl("tbGroupName") as TextBox;
            if (ch.Checked)
            {
                if (selectedRB == "")
                {
                    selectedRB = tb.Text;
                }
                else
                {
                    selectedRB = selectedRB + "," + tb.Text;
                }
            }
        }
    }
}
if(rptProducts.Items.Count>0)
{
对于(int count=0;count
然而,如果(ch.Checked)´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´

评论中的一些编辑。这是通过单击按钮运行的<代码>受保护的无效btnSubmit\u单击(对象发送者,事件参数)


中继器已绑定并显示良好,并且在文本框txtGroupName中具有正确的值

很可能在回发后重新绑定产品。如果是这样,您可以使用IsPostBack确保绑定不会再次发生

比如说,

protected void Page_Load(object sender, EventArgs e) {
  if (!IsPostBack) {
     rptProducts.DataSource = (Some Data)
     rptProducts.DataBind();
  }
}

迭代代码在哪里执行?在表单提交时?当您调试ch包含什么时?您确定
FindControl
确实正在查找该控件吗?另外,如果它们被标记为
runat=“server”
,您应该能够在代码后面说
cbSelected.Checked
。您是如何将数据绑定到中继器控件的?请告诉我们您是在哪种情况下绑定的,以及要在哪里检索。@ToastyMallows,只要它在中继器内就行。中继器很可能绑定到新数据,因此未选中复选框。