![](/img/trans.png)
[英]How to set value of <input type=“hidden”> in asp .net page_load without using runat=“server”
[英](ASP.NET) Changing an input at the start of Page_Load() and then retriving the input value after form submit gives the old value
我有一個應該具有默認值的表單,用戶可以決定在某些字段中進行更改。 輸入設置如下:
<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;
}
}
你的變量聲明應該在里面!IsPostBack
if(!IsPostBack)
{
username.Value = "test"
}
問題是,一旦您單擊其他內容,您的頁面加載事件就會觸發並且您的頁面首先加載,然后您的按鈕單擊事件就會發生。
您將 !IsPostBack 放在了錯誤的位置。 您需要在 !IsPostBack() 內的 Page_Load() 開始處保留默認數據,然后在任何 button_click 事件內的任何您想要的地方獲取值。
雖然,如果您可以更好地查看代碼,那將很容易分辨。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.