【问题标题】:Selected ListItem in Datasource not Selected after DataBinding数据绑定后未选择数据源中的选定列表项
【发布时间】:2009-08-18 23:00:18
【问题描述】:

我在将 ListItem 添加到 ListItemCollection 时选择它。然后我将该 ListItemCollection 用作 DropDownlist 的数据源,但在数据绑定后未选择选定的列表项。下面是代码示例:

ListItemCollection items = new ListItemCollection();
ListItem item;
item = new ListItem("Option 1", "1");
items.Add(item);
item = new ListItem("Option 2", "2");
item.Selected = true;
items.Add(item);
ddl1.DataSource = items;
ddl1.DataBind();

我试图让它工作,所以我只能返回一个项目列表,而不是一个项目列表和选定的值。有没有办法让 DropDownList 从 ListItemCollection(或任何其他类型的集合)中选择选定的 ListItem?

【问题讨论】:

    标签: vb.net drop-down-menu


    【解决方案1】:

    嗯......这似乎是一种奇怪的方法来完成这个,你应该能够按照这些思路做一些事情:

    ddl1.Items.Clear();
    foreach(ListItem item in items)
    {
       ddl1.Items.Add(item);
    }
    

    这应该可以解决您的选择问题...

    【讨论】:

    • 嗯,这可能是一个很好的解决方法。为什么你认为这是一种奇怪的方法在这里使用?你会推荐什么?
    • 我还没有遇到将 DropDownList 绑定到 ListItemCollection 的任何人。通常 DropDownList 会被绑定做一些其他实现 IEnumberable 的对象
    【解决方案2】:

    我认为您不能在绑定到下拉列表之前设置选定的值。我认为你必须在绑定之后进行。

    【讨论】:

      【解决方案3】:

      只需设置 DropDownList 的 SelectedValue 属性:

      ddl1.SelectedValue = "Option 2";
      

      这里我使用的是文字字符串,但最好使用item.Text 值来设置它。您可以在DataBind() 之前或之后使用它,无论哪种方式都可以。

      【讨论】:

        猜你喜欢
        • 2017-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 2012-02-11
        • 2021-10-26
        • 1970-01-01
        相关资源
        最近更新 更多