Asp.net

在按鈕 onClick 事件中獲取目前 TextBox 文本值 - asp.net

  • December 4, 2014

我有這樣一個頁面

<form runat="server" id="NewForm">
   Name: <asp:TextBox ID="Name" runat="server"></asp:TextBox>
   <asp:Button ID="AddNewName" runat="server" Text="Add" OnClick="AddNewName_Click" />
   <asp:Label ID="NewName" runat="server"></asp:Label>
</form>

在後面的程式碼中,我有一個 Page_Load,它為 TextBox 名稱分配了一個值。

protected void Page_Load(object sender, EventArgs e)
{
   Name.Text = "Enter Your Name Here";
}

然後點擊 AddNewName 按鈕,我將它寫在 Label NewName 中

protected void AddNewDivision_Click(object sender, EventArgs e)
{
   NewName.Text = Name.Text;
}

但是,無論我在名稱文本框中輸入什麼,標籤都只顯示“在此處輸入您的姓名”。它永遠不會更新到名稱文本框中的實際內容。我對這段程式碼做錯了什麼?

問題是你總是覆蓋Page_Load. 相反,請檢查IsPostBack屬性:

protected void Page_Load(object sender, EventArgs e)
{
   if(!IsPostBack)
       Name.Text = "Enter Your Name Here";
}

re-assigning每次覆蓋您在到達事件Page_Load之前在 TextBox 中輸入的文本時,您都是要命名的文本。AddNewDivision_Click要在頁面載入時分配一次並且不要覆蓋後續呼叫,您可以使用Page.IsPostBack屬性。

 if(!Page.IsPostBack)
     Name.Text = "Enter Your Name Here";

或者您可以分配設計 html 中的文本removestatement來自page_load

<asp:TextBox ID="Name" runat="server" Text="Enter Your Name Here"></asp:TextBox>

引用自:https://stackoverflow.com/questions/13825148