Webサイトを作成するためにasp.netで開発するのは初めてです。そのため、次の違いを理解するのに苦労しています。 asp:Buttonと入力ボタンの違いは何ですか?
コード1
aspxコード
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
分離コード
protected void Button1_Click(object sender, EventArgs e)
{
//Do somthing
}
コード2
aspxコード
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
<script language="javascript" type="text/javascript">
// <![CDATA[
function Submit1_onclick() {
//Do somthing
}
// ]]>
</script>
最初のコードはサーバー側のコードです。タグasp:button
をWebフォームに追加すると、asp.netはinput type="button"
をレンダリングし、このボタンをクリックすると、同じページに投稿を送信します(これはpostback
)そして、このボタンに関連付けられたライフサイクルとasp.netイベントを処理します。 TextBoxes
(input type='text'
をレンダリング)、Panels
(divをレンダリング)、Checkboxes
(input type='checkbox'
をレンダリング)など、すべてのサーバーコントロールで同じことが有効です。 、Labels
(spans
をレンダリング)など...
2番目のコードには、最初のコードがレンダリングするコード(input type = 'button'
)がありますが、クライアント側のJavaScriptのイベントに関連付けられています。
タグasp:button
でクライアント側イベントを関連付けることもできます。OnClientClick
プロパティを見てください。
asp:Button
は、サーバー側でイベントを発生させるasp.netサーバーコントロールです。
<input id="Submit1" type="submit"
送信タイプのクライアント側ボタンですが、追加することでサーバー側ボタンとしても機能します
runat="server"
およびonserverclick="eventname"
最初はサーバー側コントロールで、イベントハンドラーはC#のサーバーで実行されます。ボタンをクリックするとポストバックが発生し、クリックイベントハンドラーの呼び出しなど、フォーム内のすべての情報がサーバーに送信されて処理されます。
2番目は完全にクライアント側で、イベントハンドラーはJavaScriptのブラウザーで実行されます。
私の理解では、ブラウザでjavascriptを実行するクライアント側コードと、サーバーで実行するasp/c#コードがあることに留意する必要があります。
したがって、この制御を持っている:
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
Button1_Clickはサーバー上で実行されますが、Microsoftの世界ではIISです。一方、クリックイベントに対してjavascript関数をフックする純粋なhtmlコントロールのみがあります。
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
したがって、サーバー側はこの部分とは関係ありません。このコードは、マシンのブラウザーで実行されます。
私の機能:
1.- En elbotón:
<input type="submit" id="btnAccept" value="Log In" runat="server" onserverclick="btnAccept_Click">
2.-分離コード:
Protected Sub btnAccept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)