我有一個應該具有默認值的表單,用戶可以決定在某些欄位中進行更改。輸入設定如下:
<input type="text" id="username" clientidmode="static" runat="server" />
我在 Page_Load() 的開頭設定默認資料,如下所示:
username.Value = "test"
我稍后會像這樣在 if(isPostBack) 中獲得這些值:
string sUsername = username.Value;
這個想法是,他們將能夠更改有關用戶的某些值,或者如果他們不想更改該欄位,則只需保留默認值。
問題是,當我在 if(isPostBack) 中獲取欄位值時,我只是獲取在 Page_Load() 開始時設定的值,即使用戶更改了表單值。
我究竟做錯了什么?
這是重現此問題的簡單方法。創建一個 asp.net 專案并添加一個 WebForm。
然后將其添加到頁面:
<input type="text" id="username" runat="server" />
<input type="submit" />
并將其添加到后面的代碼中:
protected void Page_Load(object sender, EventArgs e)
{
username.Value = "Test";
if (IsPostBack)
{
string sUsername = username.Value;
}
}
uj5u.com熱心網友回復:
你的變數宣告應該在里面!IsPostBack
if(!IsPostBack)
{
username.Value = "test"
}
uj5u.com熱心網友回復:
問題是,一旦您單擊其他內容,您的頁面加載事件就會觸發并且您的頁面首先加載,然后您的按鈕單擊事件就會發生。
您將 !IsPostBack 放在了錯誤的位置。您需要在 !IsPostBack() 內的 Page_Load() 開始處保留默認資料,然后在任何 button_click 事件內的任何您想要的地方獲取值。
看看這個頁面: Edit Textbox not working(它不接受插入和提交的新資料)
雖然,如果您可以更好地查看代碼,那將很容易分辨。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/490443.html
