【发布时间】:2015-10-02 11:42:30
【问题描述】:
我正在遍历一个字符串并找到一个复选框。我发现复选框没有任何问题,如果迭代的字符等于“t”,我将复选框的 Checked 属性设置为 true。
但是,无论出于何种原因,尽管它确实检查了相应的复选框,但执行此代码也意味着当我自己单击任何复选框时,什么都没有发生(一切正常,在执行此代码之前我可以检查任何内容)。此外,如果我执行此代码,我页面上的提交按钮将不再执行任何操作。我很困惑这可能是什么原因。
这些按钮是在初始化时以编程方式创建的,位于更新面板内。
DateTime date = new DateTime(2015, 11, 18);
foreach (char c in attendee.accommodation)
{
ID = "accommodationCheckBox" + date.ToShortDateString();
CheckBox checkbox = (CheckBox)FindControl(ID);
if (checkbox != null && c == 't')
{
checkbox.Checked = true;
}
date = date.AddDays(1);
}
这是一个复选框最终看起来如何的示例:https://jsfiddle.net/Lzxo047o/
编辑:场景:您在 A.aspx 上填写动态生成的表单,然后在 B.aspx 上看到“注册概览”。如果你想在那时修改你的注册,你点击一个按钮,创建一个新的 A.aspx 实例,并用数据库中的注册数据填充它,这就是我现在正在解决的问题。我动态地创建了一些复选框并基于字符串的值,无论是否选中它们。它们会按应有的方式进行检查,但我无法手动控制/单击它们。
【问题讨论】:
-
尝试将复选框的
AutoPostBack属性设置为true。 -
确实是真的
-
使用 Guid 附加到 id 或递增数字,看看是否有效
-
我需要能够根据相关日期重建给定复选框的 ID。
-
我不确定但是,你能在页面加载中再次绑定复选框吗?