asp.net - ASP.NET 下拉列表控件能否在回发时保留列表项类?

标签 asp.net css drop-down-menu postback

我在 AutoPostBack 设置为 True 的页面上有一个下拉列表控件。在页面的初始加载时,我在 DropDownList 中的某些 ListItems 上设置了一个 CSS 类。生成的 HTML 如下所示:

<select id="mySelect">
    <option value="1">First</option>
    <option value="2" selected="selected">Second</option>
    <option value="3" class="favorite">Third</option>
    <option value="4">Fourth</option>
    <option value="5" class="favorite">Fifth</option>
</select>

回发后,ListItems 失去了它们的 CSS 类。现在看起来像这样。

<select id="mySelect">
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option>
    <option value="4">Fourth</option>
    <option value="5" selected="selected">Fifth</option>
</select>

有什么方法可以让下拉列表在回发后记住各个 ListItem 上的 CSS 类,或者我是否需要在回发后以某种方式自己设置类?

这是将 CSS 添加到下拉列表的代码。它在 PageLoad 上运行但不在 PostBack 上运行。

foreach(MyItem _myItem in MyItemList)
{
   ListItem _listItem = new ListItem();
   _listItem.Value = _myItem.ID.ToString();
   _listItem.Text = _myItem.Title;
   if(_myItem.IsFavorite)
   {
      _list.Attributes["class"] = "favorite";
   }
   ddlMyDropDown.Items.Add(_listItem);
}

科里

最佳答案

编辑:

这对我有用。尝试这样的事情

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            LoadData();
        } 

        LoadStyle();
    }

    private void LoadData()
    {
        DropDownList1.Items.AddRange(Enumerable.Range(0, 10).Select(x => new ListItem(x.ToString())).ToArray());
    }

    private void LoadStyle()
    {
        foreach (ListItem item in DropDownList1.Items)
        {
            if (int.Parse(item.Value) % 2 == 0)
            {
                item.Attributes.Add("class", "test");
            }
        }
    }

关于asp.net - ASP.NET 下拉列表控件能否在回发时保留列表项类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396420/

相关文章:

html - 水平导航栏中的不均匀列表元素。列表元素高度不同

html - Ie7 随机浮点偏移

javascript - 如何以编程方式添加下拉列表 (<select>)?

css - 我的下拉菜单在我点击之前就消失了

asp.net - 如何更改 asp Updatepanel 的标准事件处理程序签名?

c# - 在 Web 应用程序中使用 IndexSearcher/IndexWriter 的 Lucene.net

c# - 如何使用 ImageFormatConverter.ConvertFromString 将包含 HTML 响应的字符串转换为图像?

javascript - 当 Label.text 无法处理大小(内存不足)时,如何在 asp.net 中附加大 Html 字符串

javascript - jquery fade div颜色改变

html - 下拉菜单宽度 100%