Last updated on

ASP.netでOnClick属性を書くかどうか


vbファイルに次のコードが書いてあった場合、

Protected Sub Button1\_Click(sender As Object, e As EventArgs) Handles Button1.Click  
      
End Sub

aspxファイルは以下の2つのコードどちらでも、Button1_Clickイベントが発生します。

    <asp:Button ID="Button1" runat="server" OnClick="Button1\_Click" >Button</asp:Button>

<asp:Button ID=“Button1” runat=“server” >Button</asp:Button>

Handles Button1.Clickがない場合は、aspxの方のコードにonclick=“Button1_Click”が必要です。

ということで、vbファイル、aspxファイルどちらに書いても結果は同じになります。

試しに次のようにかいてみました。

vbファイル

Protected Sub Button1\_Click(sender As Object, e As EventArgs)  
    Label1.Text = "Button1が押されました。"  
End Sub

Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Label1.Text = “Button2が押されました。“
End Sub

aspxファイル

        <asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1\_Click" />  
        <br />  
        <asp:Button ID="Button2" runat="server" Text="Button2"  />

実行してみるとHTMLソースはこうなります。

        <input type="submit" name="Button1" value="Button1" id="Button1" />  
        <br />  
        <input type="submit" name="Button2" value="Button2" id="Button2" />

Button1、Button2ともに正常に動作します。
「Handles Button2.Click」を削除した場合、「Button2が押されました。」とは表示されません。
クリックしたときの挙動はHTMLソースを見ても知ることはできません。