web-dev-qa-db-ja.com

ASP.NET/HTML:ASP.NET(.cs)内のHTMLボタンのonClickプロパティ

Oncsイベントを.cs内に配置する方法があるかどうかを知りたいだけです。

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">

login_Click()は.cs内にある必要があります。

protected void btnLogin_Click(object sender, EventArgs e)
{
    // do something
} 

ここではASP.NETボタンを使用しないこと、およびLogin_Click()イベントを.html/.aspx内に配置しないため、コードを「公開」できないことに注意してください。助言がありますか?

21
abramlimpin

任意のサーバーコントロールでこれを行うことができ、このボタンは「runat=server」を定義することでサーバーコントロールになります。問題はおそらくイベントの定義にあります:

<button ... runat="server" ... onServerClick="btnLogin_Click" />

();」は必要ありません...

それとは別に、ここで<asp:Button>を使用しない理由を説明できますか?.

33
Koen

onServerClick を使用する必要があります。 [〜#〜] msdn [〜#〜] でそれを行う方法の例があります。

<button id="Button1" OnServerClick="Button1_OnClick" runat="server">
    Click me!
</button>


protected void Button1_OnClick(object Source, EventArgs e) {
    // secret codes go here
}
17
R0MANARMY

btnLogin.Click += new EventHandler( btnLogin_Click );

btnLogin_ClickイベントハンドラーをボタンのClickイベントに割り当てます。

ただし、aspxページのマークアップにハンドラーを割り当てても、「コードが公開される」ことはありません。クライアントにレンダリングされるHTMLにはその情報が含まれていないためです。

5
dave thieben

私はそれが遅いことを知っていますが、私はこの問題で多くの時間を失いました。ボタン付きのdivのInnerHtmlを設定していました。動作させたい場合は、type = "submit"をボタンに追加する必要があります。

0
milk2go

遅いですが、そこにいる誰かのために:UseSubmitBehavior="False"。例

<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">
0
H. Grewal