2013-02-13 39 views
1

我閱讀所有相關的帖子,但仍然無法理解目前面臨的概率。Oninit我創建表格與文本框如下,當我分配一個ID文本框textchanged事件不會觸發,但是當我不分配ID時它會觸發。無法理解爲什麼。請幫助。動態創建的文本框的ontextchanged事件不會觸發時分配ID

protected override void OnInit(EventArgs e) 
    { 

    PopulateTextBoxes(); 
    base.OnInit(e); 
    } 
protected void PopulateTextBoxes() 
{ 
    int quantityRequired = 0; 
    quantityRequired =GetQuantity(); 
    for (int j = 0; j < quantityRequired; j++) 
    { 
     TableRow row = new TableRow(); 
     TableCell cell1 = new TableCell(); 
     TextBox tb = new TextBox(); 
     //tb.ID = j.ToString() +":RowTbx";---> this when uncommented does not fire my  tb_textChanged event while left commented the textchanged event is fired. Cant understand why? How is assigning an ID affect event Firing, I need to have the ID to further update my Db.      
     tb.AutoPostBack = true; 
     tb.TextChanged += new EventHandler(tb_TextChanged); 
     cell1.Controls.Add(tb); 
     row.Cells.Add(cell1); 
     TableCell cell2 = new TableCell(); 
     CheckBox chBox = new CheckBox(); 
     chBox.CheckedChanged += new EventHandler(chBox_CheckedChanged); 
     chBox.AutoPostBack = true; 
     cell2.Controls.Add(chBox); 
     row.Cells.Add(cell2); 
     TableCell cell3 = new TableCell(); 
     Image img = new Image(); 
     img.Width = Unit.Pixel(25); 
     img.Height = Unit.Pixel(25); 
     img.ImageUrl = "HttpRuntime.AppDomainAppVirtualPath" + "/Images/" +"img.jpeg"; 
     cell3.Controls.Add(img); 
     row.Cells.Add(cell3); 
     tbl_Serial.Rows.Add(row); 
    } 
} 
private void tb_TextChanged(object sender, EventArgs e) 
{ 
    // TODO: Implement this method 
    //throw new NotImplementedException(); 
} 

謝謝

+0

不要忘記標記正確的答案。它可以幫助其他人。 – 2013-02-13 06:01:38

回答

2

您設置的ID不是有效的控件ID。

參見:字母數字字符和下劃線 字符(_)Control.ID

只有組合對於此屬性的有效值。包括空格 或其他無效字符將導致ASP.NET頁面分析器錯誤。

試試這個:

tb.ID = "RowTbx" + j; 
+0

謝謝,它有幫助。你爲我節省了很多時間:)謝謝! – Jaya 2013-02-13 17:33:58

1

不使用:ID。試試這個代替

tb.ID = j.ToString() + "_RowTbx"; 
+0

謝謝,它有幫助。你爲我節省了很多時間:)謝謝! – Jaya 2013-02-13 04:59:58

相關問題