1

ボタンを含む StringBuilder を使用して、コード ビハインドでいくつかの html をレンダリングしています。私もこれにハンドラーを追加しようとしていますが、おそらく驚くことではないと思いますが、それは起動しません。この方法でボタンにイベント ハンドラーを含めることはできますか?

sb.Append("<td>");
sb.Append("<input type='button' runat='server' id='butResetPassword' value='Reset Password' onserverclick='butSendEmail_Click' />");
sb.Append("</td>");
User.InnerHtml = sb.ToString();

これは、同じ分離コード ページに表示されるイベント ハンドラです。

protected void butSendEmail_Click(object sender, EventArgs e)
{
    labTester.InnerText = "Thanks for clicking me";

 }
4

1 に答える 1

1

最近、あなたの同様の質問に答えました。

コード ビハインドでマークアップを生成する本当に正当な理由がない限り、マークアップを分離しておいてください。それ以外の場合は従来の ASP を使用してください。

できるよ:

マークアップ:

<asp:Button runat="server" id="butResetPassword" OnClick="butSendEmail_Click" />

コードビハインド:

protected void butSendEmail_Click(object sender, EventArgs e)
{
    //Reset the password here
    labTester.InnerText = "Thanks for clicking me";
}

編集*確認メッセージを表示するだけで、データやコントロールとやり取りしない場合は、ボタンをjs関数にバインドして、次のように変更できonserverclickますonclick

<input type='button' runat='server' id='butResetPassword' value='Reset Password' onclick='butSendEmail_Click' />

そして、これを処理するための js を用意します。

<script type="text/javascript">
   function butSendEmail_Click() {
       alert("Thanks for clicking me");

       //Or set the labels text
       var elem = document.getElementById("labTester");
       elem.InnerHtml = "Thanks for clicking me";
   }
</script>
于 2013-06-18T10:37:25.443 に答える