奇怪的textbox問題?


頁面上有一個DropDownList(AutoPostBack="True"),動態生成textbox和label,問題出現了,一開始頁面生成沒有問題,textbox從數據庫讀的值正確,但如果我點DropDownList后,發現行的文本框的值不變了(當然數據庫里是不一樣的),我設斷點編譯,發現值是賦過去的,可就是顯示不出來,結果用Label就是可以顯示出來,我搞不懂了,大家幫我看看。
 System.Web.UI.WebControls.TextBox t_box1 = this.FindControl(textControlID) as System.Web.UI.WebControls.TextBox;
    if (t_box1 == null)
    {
          t_box1 = new TextBox();
          t_box1.ID = textControlID;
     }                                
     t_box1.Text = factDataSetObj2.Tables["data"].Rows[i][fieldName[k]].ToString();
     td.Controls.Add(t_box1);
不行。
    t_lbl = this.FindControl(labelControlID) as System.Web.UI.WebControls.Label;
    if (t_lbl == null)
    {
       t_lbl = new Label();
       t_lbl.ID = labelControlID;
       t_lbl.Text = "";
    }
    t_lbl.Text = factDataSetObj2.Tables["data"].Rows[i][fieldName[k]].ToString();
    td.Controls.Add(t_lbl);
這樣就可以

8 个解决方案

#1


textbox的第一次賦值放到if(!ispostback)內

#2


在DropDownList的變化事件中也添加

#3


if(!ispostback),動態生成的東西不能放在這里,不然點DropDownList的時候就顯示不出來了。

#4


把td.Controls.Add(t_box1);放進去看看
if (t_box1 == null)
{
    t_box1 = new TextBox();
    t_box1.ID = textControlID;
    td.Controls.Add(t_box1);
}                                
t_box1.Text = factDataSetObj2.Tables["data"].Rows[i][fieldName[k]].ToString();

#5


看不懂。

你寫一個簡單的,不超過50行完整的源代碼,把你的問題重現一下,把完整源代碼貼出來。

#6


System.Web.UI.HtmlControls.HtmlInputText t_box1 = this.FindControl(textControlID) as System.Web.UI.HtmlControls.HtmlInputText;
if (t_box1 == null)
{
    t_box1 = new TextBox();
    t_box1.ID = textControlID;
}
t_box1.Value = factDataSetObj2.Tables["data"].Rows[i][fieldName[k]].ToString();
td.Controls.Add(t_box1);

把前面的<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
換成<input id="Text1" type="text" runat="server" />
試試

#7


第一句可以寫成HtmlInputText t_box1 = (HtmlInputText)FindControl(textControlID);

#8


中間那個改成 t_box1 = new HtmlInputText();

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com