web-dev-qa-db-ja.com

ボタンクリックイベント、ASP.NETのC#コードビハインド

同僚が.aspxで提供するHTMLを使用しています。HTMLを使用して作成したボタンの機能を.aspx.cs(C#)でプログラムする必要があります。私が扱っているコードは次のとおりです。

    </div>
            <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Ship</button>
            <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Rate</button>

    </div>

私はHTMLが初めてですが、同様の質問に対する解決策を見ると、機能ボタンのHTMLコードがよく似ていることがよくあります

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

そして時には

<asp:

最初に。 aspx.csコードビハインドのC#メソッドに対応するHTMLにrunatフィールドとonclickフィールドを単純に追加しようとしましたが、実際にボタンクリックでコードビハインドのメソッドをトリガーすることはできませんでした。 onclickに続く名前のメソッドをC#aspx.csコードに追加すると、ボタンのクリック時にこれが実行されるだけであると想定しましたが、間違いです。

提供されたHTMLを変更せずに、コードビハインドでボタンの機能をプログラムできますか?または、最初にHTMLを変更する必要がありますか?

5
KMcL

おそらくボタンにrunat="server"属性を追加しても大丈夫かもしれませんが、率直に言って試したことがないので、適切なWebコントロールを使用するのが最善の方法です。

それらを置き換えても、ページのルックアンドフィールはまったく変更されません。 CssClass="xxx"を追加してcssを適用します。それ以外の場合は、標準のHTML要素にレンダリングします。

マークアップは次のようになります。

<asp:Button runat="server" id="btnLogin" Text="Log In" OnClick="btnLogin_Click" />

コード内の一致するイベントハンドラは次のようになります。

protected void btnLogin_Click(object sender, EventArgs e)
{
    // Here's where you do stuff.
}
8
Ortund

Htmlコントロールからハンドラーの背後にあるasp.netコードに到達する方法があります。 onserverclickハンドラーを追加するか、引数を使用してポストバックを実行し、contructorのポストバックにハンドラーを追加できます。

あなたを助けるためのいくつかのリンク:

https://forums.asp.net/t/1650304.aspx?Calling+code+behind+function+from+a+html+button

htmlボタンコントロールからサーバー側イベントを呼び出す

0
praty

交換する必要があります

onclick="btnLogin_Click();"

onclick="btnLogin_Click"

asp.netボタンのonClickプロパティには、実際の呼び出しではなく、aspx.csファイルで呼び出す関数の名前を含める必要があるためです。

0
Plargato

私の提案は、HTMLコントロールを<asp:Button />に変更し、ASP.NETによってイベントハンドラーを接続することです。構文は次のようになります

<asp:Button ID="Test" runat="server" Text="Button" OnClick="Test_Click" />
0
Praveen

Visual Studio/Expressなどのツールを使用している場合は、問題のページ(aspxページ)を表示します。

コントロールツールバーからボタンをページにドラッグします。

デザインビューでボタンをダブルクリックすると、コードビハインドでイベントハンドラーが自動的に作成されます。

ボタンコントロールには、OnClickおよびOnClientClickのプロパティがいくつかあります。 OnClientClickを使用して、ページ上のJavaScriptをトリガーします。

それが役に立てば幸い

0
Darren Street