2011-06-08 70 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一部分,而是完全向后兼容。