1

VS2010 で C# ASP.NET アプリケーションを開発しています。テーブルに動的に挿入されたボタンを含め、HTML テキストをリテラルに書き込んで動的テーブルを生成したいと考えています。動的 ASP.NET コントロールの作成方法は知っていますが、動的 HTML コントロールには小さな問題があります。HTML ボタンを作成しましたが、サーバー側のクリック機能を与える方法がわかりません。

動的 ASP.NET コントロールを作成してリテラルに挿入できますか? サーバー側イベントをトリガーする動的に作成されたボタンを取得するにはどうすればよいですか?

サーバー側関数を定義するために OnServerClick プロパティを使用しましたが、効果がありません。この値を使用するにはどうすればよいですか?

4

1 に答える 1

1

ボタンクリックでポストバックしたい場合は、そのイベントに__doPostBack関数を追加する必要がありonclickます。このために、次のようなボタンを追加できます

StringBuilder dynamicHtml = new StringBuilder();
dynamicHtml.Append("Your Html Code");
dynamicHtml.Append("<input type='button' id='btn1' name='btn1' onclick='__doPostBack(\'btn1\',\'\')' value='Click Here' />"); 

クリックするとポストバックされ、Request.Form["__EVENTTARGET"]誰がページをポストバックしたかを確認できます。

Request.Form["__EVENTTARGET"]Page_Load イベント ハンドラーをチェックインすることで、次のような任意のサーバー側メソッドを呼び出すことができます。

protected void Page_Load(object sender, EventArgs e)
{
    var eventTarget = Request.Form["__EVENTTARGET"].ToString();

    if(eventTarget == "btn1")
    {
        CallMethod1();
    }
}


private void CallMethod1()
{
    //Code which you want to run
}
于 2012-08-09T14:37:56.890 に答える