[英]How to check Button clicked in general methode?
我在下面嘗試過
public partial class PaymentSearch : System.Web.UI.Page
{
private bool button1WasClicked = false;
protected void linkToday_Click(object sender, EventArgs e)
{
button1WasClicked = true;
}
protected void ddlRecordPayment_SelectedIndexChanged(object sender, EventArgs e)
{
gridAllPaymentBind(1);
}
public void gridAllPaymentBind(int pageIndex)
{
if (button1WasClicked == true)
{
result = 3;
command.Parameters.AddWithValue("@result", result);
}
}
但是在'gridAllPaymentBind'方法中,'button1WasClicked'得到了錯誤的值,在下拉列表更改事件觸發前,我一直單擊鏈接按鈕。
ASP.NET本質上是無狀態的,因此變量值將不會在回發之間持久存在。 因此,要使其持久化,可以使用Session
或ViewState
。
public partial class PaymentSearch : System.Web.UI.Page
{
private bool button1WasClicked
{
get { return (bool)Session["button1WasClicked"]; }
set { Session["button1WasClicked"] = value; }
}
protected void linkToday_Click(object sender, EventArgs e)
{
button1WasClicked = true;
}
protected void ddlRecordPayment_SelectedIndexChanged(object sender, EventArgs e)
{
gridAllPaymentBind(1);
}
public void gridAllPaymentBind(int pageIndex)
{
if (button1WasClicked == true)
{
result = 3;
command.Parameters.AddWithValue("@result", result);
}
}
}
嘗試如下...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack == true)
{
Session["button1WasClicked "] = false;
}
}
protected void linkToday_Click(object sender, EventArgs e)
{
Session["button1WasClicked "] = true;
}
protected void ddlRecordPayment_SelectedIndexChanged(object sender, EventArgs e)
{
gridAllPaymentBind(1);
}
public void gridAllPaymentBind(int pageIndex)
{
bool button1WasClicked = (bool)Session["button1WasClicked "];
if (button1WasClicked == true)
{
result = 3;
command.Parameters.AddWithValue("@result", result);
}
}
希望這對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.