当用户点击“保存更改”按钮时,我需要获取转发器内所有复选框的值。如果我无法获取值,则ID也可以。
母版页代码:
<ul class="bulletless">
<asp:Repeater runat="server" ID="newsletter_repeater">
<ItemTemplate>
<li><input type="checkbox" value='<%#Eval("id")%>' id='<%#Eval("id")%>'/> <%#Eval("displayTitle")%></li>
</ItemTemplate>
</asp:Repeater>
</ul>
<asp:Button runat="server" CssClass="editButtonOff" Text="Save Changes" ID="SaveNewsletterChanges" OnClick="SaveNewsletterChanges_submit" />
这是我背后的代码:
protected void SaveNewsletterChanges_submit(object sender, EventArgs e)
{
//the count of the items in the repeater is 2
//but the aItem is null
foreach( RepeaterItem aItem in newsletter_repeater.Items){
string myId = aItem.ID;
}
}
我做错了什么?
答案 0 :(得分:11)
首先,您需要将runat="server"
添加到您的复选框。
其次,您需要为复选框指定一个不会更改的ID。转发器将负责使客户端ID唯一:id="chkDisplayTitle"
第三,您可以像这样访问转发器中的项目:
foreach (RepeaterItem item in CourseAreaRptr.Items)
{
HtmlInputCheckBox chkDisplayTitle = (HtmlInputCheckBox)item.FindControl("chkDisplayTitle");
if (chkDisplayTitle.Checked)
{
//HERE IS YOUR VALUE: chkAddressSelected.Value
}
}