3

このようなチェックボックスのチェック済み属性を変更するメソッドがあります

checkbox1.checked = true;

そして、私はeventhandlerメソッドを持っています:

checkbox1_checkedChanged(object obj, EventArgs args)

しかし、checked 属性を 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

実行する必要があるのは、起動するメソッド ハンドラーを呼び出すことだけです。これは、既にサーバー側にいるため、プロパティ値の変更によってイベントが発生することはありません。したがって、checked を true に設定してから、これを試してください。

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

さて、あなたは「ポストバック」について話しているので、Web ページを作成していると思います。

このプロパティは、イベント ハンドラーがコントロールのみにバインドされているため、コントロールのプロパティがWeb ページ上のコントロール自体AutoPostBackによって変更されたときに、ポスト バック イベントが発生することのみを示します。

そのため、コントロールのプロパティを (サーバー側のコードで) 動的に変更しても、イベント ハンドラーがトリガーされることはありません。代わりに、変更の直後にハンドラーを呼び出すことができます (Justin Harvey が言ったように)。

于 2012-10-17T15:23:08.500 に答える