私はAsp.netを初めて使用するので、私の質問はそれほど専門的ではないかもしれません。私のasp.net Webフォームプロジェクトで demy.com のデザインを使用しています。 udemy
のヘッダーとフッターをmasterpage
に入れました。しかし、m個のWebフォームの1つにボタンを追加すると、クリックイベントが発生しません。
<asp:Button ID="Button1" runat="server" onclick="Button1_Click1" Text="Button" />
protected void Button1_Click1(object sender, EventArgs e)
{
Page.Title = "Sample Text";
}
この問題を修正するために、ページからすべてのスクリプトを削除しました。また、CausesValidation
をFalseに設定しようとしました。しかし、何も助けにはなりません。この問題の解決を手伝っていただけませんか?
OnClickイベントをコードに追加しました。しかし、私はまだその問題に直面しています。
OnClickイベントを「.aspx」ファイルに「追加」したことを除いて、これまでのすべての回答は正しいです。あなたが使用しているテンプレートの何かなのか、それともコードの他の場所なのかはわかりません。しかし、私はあなたが以下をチェックすることをお勧めします(同様の状況で行き詰まったという私の経験に基づく):
これはサンプルコードです。ボタンに "OnClick =" MyButton_Click "がありません。
aspx
<asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
code behind
protected void **MyButton_Click**(object sender, EventArgs e)
{
// Put code here over there chuhu
}
あなたが試すかもしれないいくつかのポイント...あなたが(アップデート後に)投稿したコードは動作するはずです。
Breakpoints
を使用しますが、必要な場合は... Title
コンポーネントにrunat="server"
属性があり、更新パネル内にあります。追加 CausesValidation = "false"
ボタンの属性:
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" CausesValidation="false"></asp:Button>
コードビハインドでクリックハンドラーを割り当てる場合は、IsPostBack == falseチェックの内部にないことを確認してください。
void Page_Load (object oSender, EventArgs oEventArgs)
{
if (IsPostBack == false)
{
oButton += new EventHandler(oButton_Click); // does not work
}
oButton += new EventHandler(oButton_Click); // does work
}
不足していますOnClick="Button1_Click"
。このようなイベントを追加する必要があります
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
これを試して
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
これはあなたのページディレクティブですか?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
フォームタグ内にボタンを配置してみてください
なので
<form id="#" runat="Server">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
</form>
他の入力要素の「必須」属性を確認して削除してください。それは私の場合で動作します。それを見つけるのにしばらくかかりました。
ここでもこの質問を読んでください。同じ問題 asp.net Button OnClickイベントが発生しない
オンラインで簡単な例をテストしてください aspdotnetfiddle 。
単一のボタンとラベルコントロールを備えたサンプルプログラムを作成しました。ボタンをクリックすると、ボタンのクリックイベントが発生し、ラベルテキスト値が割り当てられます。
Yourpage.aspx.designer.csファイルでボタンが適切に定義されていることを確認してください。
以下のようなコード:
protected global::System.Web.UI.WebControls.Button Button1;
2つのボタンと2つの検証サマリーがある場合は、検証サマリー、テキストボックス、ボタンごとにValidationGroup = "Group2"
を追加する必要があります。
そして、他の追加:ValidationGroup="Group1"
の場合は、それで機能するはずです。
このようなページディレクティブ
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
[〜#〜] html [〜#〜]
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
次のコードはDefault.aspx.cs内にある必要があります
protected void Button1_Click(object sender, EventArgs e)
{
Page.Title = "Sample Text";
}
どこに問題があるのかという私の推測はディレクティブに問題があるかもしれないということです
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
または、formタグ内のasp:Buttonタグを呼び出さなかったでしょう
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
これはサンプルコードです。ボタンに "OnClick =" MyButton_Click "がありません。
aspx
<asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
コードビハインド
protected void **MyButton_Click**(object sender, EventArgs e)
{
// Put code here
}
私の個人的な答えは、「Googleでもっと学ぶ必要がある」
Asp.netのいくつかの最高のチュートリアル
http://www.w3schools.com/aspnet/default.asp
http://www.asp.net/web-pages/tutorials
http://quickstarts.asp.net/QuickStartv20/default.aspx そして MSDNウェブサイト から多くの知識を学ぶことができます
より多くのasp.netコントロールなどを理解できます...
問題が検証の起動であり、ボタンが検証をトリガーしてはならない場合は、CausesValidation = "false"をボタンの属性に追加することを検討してください。
あなたのボタンはこのようにする必要があります
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
これを試してください:
<asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" />
ボタンクリックイベントのイベントハンドラについては言及していません。
それが役に立てば幸い。
私の場合、マスターページの本文にボタンを追加していて、<form>
タグが<body>
タグ内にあったため、イベントは発生していませんでした。
<form>
タグにボタンを追加することで問題を解決しました
$('body').append($(".ButtonsDiv"));
$('#form1').append($(".ButtonsDiv"));
JavaScriptがページで警告なしに失敗し、処理が中止され、クリックイベントが発生しないようにすることができます。これが起こっていると思われる場合は、デバッグする前にスクリプトタグのすぐ下に貼り付けます。
window.onerror = function (message, filename, linenumber) {
alert("JS error: " + message + " on line " + linenumber + " for " + filename);
}
本番用コードから削除します。