從selectedindexchanged
事件中,我的變量有一個值,但是當它到達事件btn_click()
時,該變量不再具有值。這是爲什麼?爲什麼我的變量會失去它的價值?
public partial class TestingDatapass
{
private string item = null;
private string itemprice = null;
private int totalprice = 0;
protected void item_selectedindexchanged(object sender, EventArgs e)
{
//Both have a value here
item = item.SelectedValue;
itemprice = item.SelectedValue.Text;
}
protected void btn_click(object sender, EventArgs e)
{
//no value here
totalprice = Convert.ToInt32(itemprice)*Convert.ToInt32(item);
MessageBox.Show(totalprice);
}
}
編輯
並回答了?在意見提出,發生順序是selectedindexchange
那麼btn_click()
編輯關於視圖狀態
所以後來會變成這樣設置什麼,我想實現一個適當的方式?
public partial class TestingDatapass
{
private int totalprice = 0;
protected void item_selectedindexchanged(object sender, EventArgs e)
{
ViewState["item"] = item.SelectedValue;
ViewState["itemprice"] = item.SelectedValue.Text;
}
protected void btn_click(object sender, EventArgs e)
{
totalprice = Convert.ToInt32(ViewState["item"])*Convert.ToInt32(ViewState["itemprice"]);
}
}
似乎'btw_click'在'item_selectedindexchanged'之前被處理。一段時間以來,我已經完成了ASP.Net,但我們遇到了這個問題 - 事件處理順序無法保證。在一個案例中,我們有許多事件,而使事情順利進行的唯一方法是使用單一方法作爲處理程序。這種方法每次都重新計算整個頁面的狀態。 – radarbob
都在同一個請求中被調用? –
否 - 選定的索引更改發生然後按下按鈕事件 – MustangLover