当用户单击“保存更改”按钮时,我需要获取转发器内所有复选框的值。如果我无法获取值,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;
}
}
我究竟做错了什么?
最佳答案
首先,您需要添加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
}
}
关于checkbox - 获取转发器中所有复选框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697093/