Repeater中的HtmlInputCheckBox始终未选中
本文关键字:中的 HtmlInputCheckBox Repeater | 更新日期: 2023-09-27 18:26:58
我通过添加在中继器中使用HtmlInputCheckBox
<input id="CheckBox1" type="checkbox" runat="server" value='<%# Eval ("userid") %>' />
到中继器->ItemTemplate->table->tr->td,在服务器端我使用
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < UserRepeater.Items.Count; i++)
{
var chkBox = UserRepeater.Items[i].FindControl("CheckBox1") as HtmlInputCheckBox;
if (chkBox != null && chkBox.Checked)
{
//
}
}
}
我没有用程序设置任何复选框,而是在测试期间在网页上检查它们。我的var复选框总是被选中{Value="1,2,3,4"Checked=false},thx帮助了我。
如何填充中继器-如果您在page_load中进行填充,请确保其受到回发保护:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
// populate your data
}
}
编辑
这是假设您正在上使用viewstate,默认情况下是这样的。
这可能与绑定中继器有关。如果您在Page_Load上绑定,则会在视图状态和发布变量恢复后创建复选框,因此该值不会出现在复选框中。
如果可能,将数据绑定移动到Page_Init;在恢复viewstate/post值之前,您的复选框将获得正确的值。如果你不能绑定Page_Init,那么@Aristos的答案就可以了。