【问题标题】:Databinding listbox and set css class数据绑定列表框和设置 css 类
【发布时间】:2012-07-17 07:30:04
【问题描述】:

我想从数据库中获取值以生成一个列表框,哪些项目属于不同的类。 在 HTML 中,我希望它会像

<option value="a" class="A">A</option>

在asp.net中,我写了这个,但不知道有没有什么方法可以帮助在数据绑定阶段指定类属性。 (现阶段我只能把选项项的文字和值正确放好。)

lb.DataSource = CreateDataSourceForLB()
lb.DataTextField = "TextField"
lb.DataValueField = "ValueField"
lb.DataBind()

非常感谢您的帮助!

【问题讨论】:

    标签: asp.net events listbox web-controls


    【解决方案1】:

    您需要添加列表框的Databound事件,并为其每个列表项添加类属性。

    protected void ListBox1_DataBound(object sender, EventArgs e)
        {
            foreach (ListItem li in ListBox1.Items)
            {
                li.Attributes.Add("Class", "A");
            }
        }
    

    【讨论】:

    • 回发后有没有办法保留这些属性?我所有的 ajax 回发都清除了我分配给数据绑定列表项的属性。
    【解决方案2】:

    我认为在数据绑定阶段您不必循环所有项目。

    foreach (ListItem item in lb.Items)
    {
                  item.Attributes.Add("class", item.Value.ToUpper());      
    }
    

    【讨论】:

      【解决方案3】:

      我认为您不能绑定DropdDownList 的属性来设置HTML 属性,但是,您可以在绑定控件后遍历所有项目,并设置它们的属性:

              foreach (var item in this.ddl.Items.OfType<ListItem>())
              {
                  item.Attributes.Add("class", "koko");
              }
      

      以上代码生成如下 HTML:

       <select name="ddl" id="ddl">
      <option selected="selected" value="" class="koko">---Select---</option>
      <option value="1" class="koko">New Hire - Job not specified</option>
      <option value="2" class="koko">Chief Executive Officer</option>
          .....
       </select>
      

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 2011-01-28
        • 1970-01-01
        • 2012-05-24
        • 2012-10-12
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多