2011-06-08 130 views
4

我有一個場景,我必須根據用戶選擇動態創建表單。在表格中,應該在文本框的最後添加幾個文本框。asp.net textbox動態創建.CssClass屬性

我區分文本框的方式在結尾處添加是如下規定..

TextBox txt1 = new TextBox(); 
     txt1.ID = "txt1"; 
     txt1.CssClass = "addToTotal"; 

     TextBox txt2 = new TextBox(); 
     txt2.ID = "txt2"; 
     txt2.CssClass = "addToTotal"; 

     TextBox txt3 = new TextBox(); 
     txt3.ID = "txt3"; 
     txt3.CssClass = "txtTotalPoints"; 

     PlaceHolder1.Controls.Add(txt1); 
     PlaceHolder1.Controls.Add(txt2); 
     PlaceHolder1.Controls.Add(txt3); 

在現實中,沒有在site css file命名爲'addToTotal' CSS類。它只是作爲一個標誌來通知我最後添加。

即使實際的類不存在,添加.CssClass也是一種很好的做法。使用這種方法有什麼缺陷嗎?

回答

0

我會假設使用一個不存在作爲標記的CSS類的開銷很小,所以我不會根據它改變你的實現。如果你很在意的最佳做法 - 你能正確地是,CSS類從來沒有打算這樣使用 - 你可以一個data-*屬性添加到輸入並使用它:

txt2.Attributes["data-addToTotal"] = "true"; 

...然後找到這些元素用jQuery:

$("input[data-addToTotal='true']") 

data-*屬性是HTML5一部分,而是完全向後兼容。