【问题标题】:asp.net textbox dynamic creation with .CssClass attribute使用 .CssClass 属性动态创建 asp.net 文本框
【发布时间】: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 是否也是一种好习惯。使用这种方法有什么陷阱吗?

【问题讨论】:

    标签: c# jquery asp.net css


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 2019-08-26
      • 2013-06-19
      • 2021-09-12
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多