[英]How to link Asp.NET Button with Code-behind?
我正在開發一個具有一些不同功能位的 ASP.NET 頁面。 我的第一個按鈕工作得很好,看起來像這樣:
<form method="post">
<h2>View an Existing Reservation</h2>
<p><sub>Or just enter your email to recover your reservations</sub></p>
<div>
<div class="form-row">
<div class="col-lg-6 col-md-6 col-sm-12">
<label for="name">Reservation ID:</label>
<asp:TextBox runat="server" ID="ID" Name="ID" CssClass="form-control"></asp:TextBox><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<label for="email">Email</label>
<asp:TextBox runat="server" ID="Email" TextMode="Email" CssClass="form-control"></asp:TextBox><br />
</div>
</div>
<div class="form-row justify-content-around">
<asp:Button ID="Button2" Text="Edit" onclick="Button2_Click" runat="server" CssClass="btn btn-primary"/>
</div>
</div>
</form>
后面的代碼是:
public void Button2_Click(object sender, EventArgs e){}
在下一個按鈕中,我進行了完全相同的設置,將“Button2”替換為“Button3”。 所以只是不允許我一次發布太多代碼。
該頁面不訪問后面的代碼。
到目前為止我已經嘗試過:
使用 Button3 嘗試訪問 Button2_Click()。 這也不起作用(即,沒有 function 運行)
使用“OnClick”而不是“onclick”。 這也不會運行 function。
檢查designer.cs - 我所有的designer.cs 文件只顯示一個空的部分class,一切正常。 我正在使用 VS2019 編譯器更新它們。
第二個按鈕是否缺少任何需要的東西?
我通過簡單地更改我的操作方式解決了這個問題(即,Button2_Click() 中的條件邏輯根據輸入具有不同的行為)。 如果有人想解決根本問題以幫助將來解決此問題的任何人,請成為我的客人。
並不是問題根源的真正答案,但如果您有兩個 forms 在相同(或彼此較少)輸入上運行,那么根據您的業務需求,這將起作用:
<form method="post">
<h2>View an Existing Reservation</h2>
<p><sub>Or just enter your email to recover your reservations</sub></p>
<div>
<div class="form-row">
<div class="col-lg-6 col-md-6 col-sm-12">
<label for="name">Reservation ID:</label>
<asp:TextBox runat="server" ID="ID" Name="ID" CssClass="form-control"></asp:TextBox><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<label for="email">Email</label>
<asp:TextBox runat="server" ID="Email" TextMode="Email" CssClass="form-control"></asp:TextBox><br />
</div>
</div>
<div class="form-row justify-content-around">
<asp:Button ID="Button2" Text="Edit" onclick="Button2_Click" runat="server" CssClass="btn btn-primary"/>
</div>
</div>
</form>
public void Button2_Click(object sender, EventArgs e)
{
var keys = Request.Params.AllKeys;
double id = Request.Form["ctl00$MainContent$ctl00$ID"] != "" ? double.Parse(Request.Form["ctl00$MainContent$ctl00$ID"].ToString()) : -1;
string email = Request.Form["ctl00$MainContent$ctl00$Email"].ToString();
if(id == -1) // some default value if the field is left empty
{
resend(email); // the function supposed to be run by the smaller form
return;
}
var obj = Request.Form;
Response.Redirect(String.Format("View.aspx?id={0}&email={1}", id, email));
}
基本上,通過查看較小形式不需要的值(在本例中為 resend() 函數)是否為空,我們可以看到用戶的意圖是什么——通過輸入兩個值,他們得到一個 function,並且只提交一個值,他們得到另一個 function。 這可以擴展到您想要的任意數量的功能,盡管它最終會開始變得很痛苦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.