2016-03-15 47 views
1

我有中檢索文本類型的輸入元素麻煩時,這個先前設置一些C#代碼,例如新的價值:檢索輸入型文本輸入與ASP.NET

FOO的HTML元素的.aspx被定義爲:

<input type="text" class="form-control" id="name" runat="server" /> 

從後面的代碼,foo.aspx.cs,有這樣的事情:

protected void Page_Load(object sender, EventArgs e) 
{ 
    bool has_something = ...; 
    if(has_something) 
     name.Value = "X"; 
} 

has_something是真實的,現在的問題,如果用戶在輸入輸入Y的值,當我做這樣的事情(代碼foo.aspx.cs太):

protected void go_Click(object sender, EventArgs e) 
     { 
      if (!IsValid) 
       return; 

      string Name = name.Value; 
      Debug.WriteLine(string.Format("name = {0}", Name)); //X 
     } 

而不是讓當前值在輸入ID =名稱,說,我輸入Y,我得到舊值,設置在Page_Load()時間。

我錯過了什麼?我應該使用Javascript來設置值? 我該如何解決這個問題?

回答

2

我編輯了我的原始回覆以更正答案。

當頁面按鈕單擊後執行回發時,您正在執行Page_Load函數中的代碼。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      bool has_something = ...; 
      if (has_something) 
       name.Value = "X"; 
     } 
    } 
+0

我覺得你很混亂,它是'System.Web.UI.HtmlControls.HtmlInputText'而不是'System.Windows.Forms.TextBox'。沒有'Text'屬性... – Jack

+0

。我也發現了我的錯誤:)我很累 – Jack