簡體   English   中英

(ASP.NET)在 Page_Load() 開始時更改輸入,然后在表單提交后檢索輸入值給出舊值

[英](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 事件內的任何您想要的地方獲取值。

  • 看看這個頁面: Edit Textbox not working(它不接受插入和提交的新數據)

雖然,如果您可以更好地查看代碼,那將很容易分辨。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM