选中后复选框未触发事件以编程方式设置

时间:2015-10-02 11:42:30

标签: asp.net checkbox

我正在遍历一串字符并找到一个复选框。我找到了没有任何问题的复选框,如果迭代的字符等于't',我将复选框的Checked属性设置为true。

然而,无论出于何种原因,虽然它确实检查了相应的复选框,但执行此代码也意味着当我自己单击任何复选框时,没有任何反应(一切正常,我可以检查任何内容,直到我执行此代码)。此外,如果我执行此代码,我页面上的提交按钮不再执行任何操作。我很困惑这可能是什么原因。

按钮是在init上以编程方式创建的,位于更新面板内。

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的新实例,并用数据库中的注册数据填充它,这就是我现在正在解决的问题。我动态创建一些复选框,并根据字符串的值,检查或不检查。他们会按照自己的意愿进行检查,但我无法手动控制/点击它们。

2 个答案:

答案 0 :(得分:0)

checkbox.CheckedChanged += yourcheck_event;

如果动态创建复选框,则必须将事件添加到其中。

答案 1 :(得分:0)

确保您的UpdatePanel将UpdateMode属性设置为"始终"。

记住:

  

UpdatePanel控件的内容仅在其中一个内容时更新   以下是真的:

     

当回发是由该UpdatePanel控件的触发器引起的。   显式调用UpdatePanel控件的Update方法时。什么时候   UpdatePanel控件嵌套在另一个UpdatePanel控件中   并且父面板已更新。

...