使用 .CssClass 属性动态创建 asp.net 文本框

Posted

技术标签:

【中文标题】使用 .CssClass 属性动态创建 asp.net 文本框【英文标题】:asp.net textbox dynamic creation with .CssClass attribute 【发布时间】:2011-09-10 13:25:30 【问题描述】:

我有一个场景,我必须根据用户选择动态创建表单。在表单中,有几个文本框应该添加到 Total Textbox 的末尾。

我区分最后添加的文本框的方式是通过如下指定..

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 是否也是一种好习惯。使用这种方法有什么陷阱吗?

【问题讨论】:

【参考方案1】:

我会假设使用不存在作为标记的 CSS 类的开销是最小的,所以我不会基于此更改您的实现。如果您担心最佳实践 - 您可能会这样做,CSS 类从未打算像这样使用 - 您可以在输入中添加 data-* 属性并改用它:

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

...然后使用 JQuery 查找这些元素:

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

data-* 属性是html5 的一部分,但完全向后兼容。

【讨论】:

以上是关于使用 .CssClass 属性动态创建 asp.net 文本框的主要内容,如果未能解决你的问题,请参考以下文章

使用 Adob​​e Illustrator 设置 CSS 类属性 [关闭]

如何使用 Swashbuckle 的 SwaggerUI 显示静态 swagger.json 文件而不是 SwaggerGen 的动态创建的定义?

使用元类动态设置属性

ASP.Net CSS + CSS语法问题中Class与CSSClass之间的区别

ABP官方文档翻译 5.2 动态We API层

如何通过 Dockerfile 使用 docker run 中传递的动态值创建属性文件?