3

我有一个方法可以像这样更改复选框的选中属性

checkbox1.checked = true;

然后我有事件处理程序方法

checkbox1_checkedChanged(object obj, EventArgs args)

但是,当我将选中的属性更改为 true 时,事件处理程序不会启动。

我怎样才能做到这一点?

4

4 回答 4

3

我怀疑你的功能是 checkbox1.checked = true; 正在运行服务器端,因此永远不会导致回发。

如果是这种情况,并且您只想调用已检查更改的处理程序中的代码,则可以直接调用该函数,或者将代码重构为一个通用函数。

于 2012-10-17T14:50:55.013 回答
2

您需要在您的元素上将 AutoPostBack 设置为 true

<asp:CheckBox id="checkbox" runat="server" AutoPostBack="true" />
于 2012-10-17T14:51:47.940 回答
2

您需要做的只是调用您想要触发的方法处理程序,因为您已经在服务器端,因此不会因为属性值更改而触发任何事件。因此,在将检查设置为 true 后尝试此操作:

checkbox1_checkedChanged(checkbox1, new EventArgs());
于 2012-10-17T14:53:52.413 回答
0

好吧,您谈论的是“回发”,所以我假设您正在创建一个网页。

AutoPostBack属性仅表示当通过网页上的控件本身更改控件的属性时将触发回发事件,因为事件处理程序仅绑定到控件。

因此,动态更改控件的属性(使用服务器端的代码)永远不会触发事件处理程序。相反,您可以在更改后立即调用处理程序(就像 Justin Harvey 所说的那样)。

于 2012-10-17T15:23:08.500 回答