ASP.net DropDownList没有选定项

13

我有一个ASP的DropDownList,其中添加了一些项。我想要做的就是在页面加载后使选择为空,这样就没有任何选中的项了。

我应该怎么做呢?

6个回答

22

你可以通过编程的方式向下拉列表的顶部添加一个空项,代码如下:

myDropDown.Items.Insert(0, new ListItem(string.Empty, string.Empty));
myDropDown.SelectedIndex = 0;

4

我不确定我理解你的问题,但是尝试这样做:

DropDownList1.ClearSelection()

或者

DropDownList1.SelectedIndex = -1;

1

如果下拉列表是通过数据源填充的,那么在插入之前进行数据绑定非常重要。否则,项目插入将不会发生。

myDropDown.DataBind();
myDropDown.Items.Insert(0, new ListItem(string.Empty, string.Empty));
myDropDown.SelectedIndex = 0;

https://dev59.com/LXE95IYBdhLWcg3wn_f2#2224636


1
这应该可以在客户端运行:

<asp:DropDownList ID="YourID" runat="server" DataSourceID="YourDataSource
DataTextField="Text" DataValueField="Value" AppendDataBoundItems="True">
    <asp:ListItem Text="" Selected="True"></asp:ListItem>
</asp:DropDownList>

1

您可以将SelectedIndex属性设置为-1,或者在数据源中添加一个空条目作为第一项,并在表单提交时验证选择。


1
你可以将SelectedIndex属性设置为-1。在LoadPage事件中,我尝试将SelectedIndex属性设置为-1,但是没有起作用。如果将其设置为2或3,则可以正常工作,但是设置为-1则不行。 - Eyla

0

yourDropDownList.Items.Clear()

为了重新填充,您可以按照 womps 的建议静态地添加项目(在insert()方法中替换参数),或者您可以从数据源动态填充。

列表项的后备存储是 ListItemCollection


这会移除所有项目,而不仅仅是清空所选项目。 - womp
我同意,但问题比较模糊。 - flesh
同意这种歧义 - 我只是帮忙澄清它会做什么。不确定为什么你被踩了 - 如果我的评论引起了这种情况,很抱歉:( - womp
这个将会清空项目列表,在这种情况下我需要另一个方法来重新加载列表。 - Eyla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接