0

実際には必要ありません。しかし、サーバーで実行するために作成されたイベントハンドラー関数が呼び出されないため、少し好奇心が湧いています。htmlボタン要素をドラッグして、属性runat="server"を使用してフォーム要素内に配置しました。

デザインビュー内のボタンをダブルクリックすると、イベントハンドラー関数が作成されているjavascriptブロックにリダイレクトされます。私はそれを消去し、コードビハインドファイルに自分自身を書き込みました。これで、サーバーでページを実行してボタンをクリックしても、イベントハンドラー関数は呼び出されません。

実行してほしい。ともかく ?

4

3 に答える 3

1

2 つの異なるイベントを混同しています。エディターで提供される onclick はクライアント側のクリック イベントであり、JavaScript コードで処理されます。
次のようにマークアップすると、サーバー側の C# ベースのイベント ハンドラーをそのようなボタンに追加できます。

runat="server" 

、属性を設定し、それにサーバー側ハンドラーを追加します (Button1 がボタンの ID であると仮定します)

Button1.ServerClick += new EventHandler(Button1_ServerClick);


HTML入力のマークアップは、マークアップを介してハンドラーを追加するサーバー側イベントを公開しませんが、上記で貼り付けたコードをpage_load/initイベント内に追加できます

于 2012-06-02T16:24:00.703 に答える
0

あなたのボタンはどのようなものですか?これを試して:

<button runat="server" ID="myButton" onClick="YourFunction">My Button</button>
于 2012-06-02T16:13:57.637 に答える
0

ASPX:

<button runat="server" id="htmlButton1" name="htmlButt" onserverclick="butt">
        foo</button>

CS/分離コード:

protected void butt(object sender, EventArgs e)
{
    Response.Write("butt clicked!");
}

ハンドラーを(手動で)作成する必要があります-IDEは自動的にそれを配線しません(onserverclickで自分で配線します)。

于 2012-06-02T16:55:25.917 に答える