2012-07-17 66 views
0

我是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> 

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

谢谢

回答

1

它看起来像你想要循环删除检查项目。试试这个:

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

让我知道这是如何工作。

+0

是的,这是我正在寻找,但不太确定它在哪里。 – Kevin 2012-07-17 16:05:59

+0

这是在用户控制代码后面还是使用用户控件的页面? – Kevin 2012-07-17 16:07:34

+0

看起来你正在触发函数'cbxRemove_CheckedChanged'。这是被称为?你可以通过在函数内的第一行放置一个断点来检查。 – woz 2012-07-17 16:08:23