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内に配置しないため、コードを「公開」できないことに注意してください。助言がありますか?
任意のサーバーコントロールでこれを行うことができ、このボタンは「runat=server
」を定義することでサーバーコントロールになります。問題はおそらくイベントの定義にあります:
<button ... runat="server" ... onServerClick="btnLogin_Click" />
「();
」は必要ありません...
それとは別に、ここで<asp:Button>
を使用しない理由を説明できますか?.
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
}
btnLogin.Click += new EventHandler( btnLogin_Click );
btnLogin_ClickイベントハンドラーをボタンのClickイベントに割り当てます。
ただし、aspxページのマークアップにハンドラーを割り当てても、「コードが公開される」ことはありません。クライアントにレンダリングされるHTMLにはその情報が含まれていないためです。
私はそれが遅いことを知っていますが、私はこの問題で多くの時間を失いました。ボタン付きのdivのInnerHtmlを設定していました。動作させたい場合は、type = "submit"をボタンに追加する必要があります。
遅いですが、そこにいる誰かのために:UseSubmitBehavior="False"
。例
<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">