2

くだらない質問で、すいません。

ASP.NET サーバー コントロールから動的に html 要素を作成しています。要素が作成された後、またはすべての要素が作成された後、そのうちの 1 つで強制的にイベントを発生させる方法はありますか? サーバーからクライアントに送信されることは理解していますが、それを回避する方法を探しています。HTML の追加などをリッスンできるドキュメントはありますか?

私はこのようなコントロールを作成しています:

protected override void RenderContents(HtmlTextWriter output)
{
    // htmlString is a dynamically built string of html
    output.Write(htmlString);
}

要素は、ユーザーが選択した値を保存できる一連のカスケード ドロップダウンです。そのため、項目の作成時に項目の値を選択すると、イベントを開始する方法がありません。イベントは、依存するコントロールを満たすデータをデータベースに呼び出します。ここには「ポストバックなし」のルールがあります (私のルールではありません)。

どんな助けでも大歓迎です。

4

2 に答える 2

2

レンダリングの一部として JavaScript を出力し、動的に作成されたコントロールにイベントをバインドできます。

jQuery を使用すると、イベントのバインドが非常に簡単になります。

于 2012-07-30T18:35:42.740 に答える
0

必要に応じて、RegisterClientScriptBlock() から Function() を起動します。

使用例:

ClientScript.RegisterClientScriptBlock(GetType(), "sas", "<script> alert('Inserted successfully');</script>", false);

または、これらの新しいアイテムのクリックなどでライブ イベントを設定することもできます。

$(document).on('click', '#exampleThing', function () {
    // what you want to do
});
于 2012-07-30T18:40:16.333 に答える