【问题标题】:User Control with checkbox in repeater中继器中带有复选框的用户控件
【发布时间】:2012-07-17 23:43:54
【问题描述】:

我是 C#/asp 的新手。我正在尝试向用户控件中的转发器控件添加一个复选框。当用户单击复选框时,我想在用户控件所在的页面上捕获该事件。我已经将复选框放在中继器中。 这是我在用户控件中的内容。

       <asp:Repeater ID="rOrderItems" runat="server" ><HeaderTemplate>
            <table class="mGrid" ><tr><td width="50%" align="left" >Item</td>
            <td width="20%" align="right">Qty</td>
            <td width="20%" align="center">Remove</td></td></tr></HeaderTemplate>                

            <ItemTemplate >
                <tr>
                <td> <%# DataBinder.Eval(Container.DataItem, "item.ItemNumber")%> </td>
                <td> <%# DataBinder.Eval(Container.DataItem, "Quantity")%> </td>
                 <td> <asp:CheckBox  ID="cbxRemove" AutoPostBack="true" Checked="false" OnCheckedChanged="cbxRemove_CheckedChanged"  runat="server" /></td> 
                </tr>
            </ItemTemplate>
            <FooterTemplate><tr><td>   </td><td>  </td></tr></table>
            </FooterTemplate>
            </asp:Repeater>

在这之后我有点失落。请原谅我的无知,但我正在学习。

谢谢

【问题讨论】:

    标签: c# .net user-controls checkbox repeater


    【解决方案1】:

    您似乎想要循环删除检查项。试试这个:

    for (int i = 0; i < rOrderItems.Items.Count; i++) {
      CheckBox chk = (CheckBox)rOrderItems.Items[i].FindControl("cbxRemove");
      if (chk.Checked) {
        //remove this item
      }
    }
    

    让我知道它是如何工作的。

    【讨论】:

    • 是的,这就是我要找的东西,但不太确定它的去向。
    • 这是在后面的用户控件代码中还是在使用用户控件的页面中?
    • 您似乎正在触发函数cbxRemove_CheckedChanged。是这样叫的吗?您可以通过在函数内的第一行放置断点来检查。
    • 假设您发布的标记是用户控件的一部分,它将位于用户控件后面的代码中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多