设置SelectedIndex-1 ASP.NET DropDownList

设置SelectedIndex-1 ASP.NET DropDownList,asp.net,.net,Asp.net,.net,有没有一种方法可以像jQuery那样从代码隐藏中选择-1索引而不添加新列表项(“,“-1”,true)) 以下是一个例子: 你是说像这样吗 DropDownList1.SelectedIndex = -1; 这就是人们通常从代码隐藏中执行的方式 埃塔:我现在明白你在说什么了。恐怕我不知道如何从服务器端完成。在服务器端,您所能做的就是控制渲染。据我所知,即使您呈现以下代码: <select id="testSelect" selectedIndex="-1"> 。。。它仍然显示

有没有一种方法可以像jQuery那样从代码隐藏中选择-1索引而不添加
新列表项(“,“-1”,true))

以下是一个例子:

你是说像这样吗

DropDownList1.SelectedIndex = -1;
这就是人们通常从代码隐藏中执行的方式

埃塔:我现在明白你在说什么了。恐怕我不知道如何从服务器端完成。在服务器端,您所能做的就是控制渲染。据我所知,即使您呈现以下代码:

<select id="testSelect" selectedIndex="-1">

。。。它仍然显示,顶部选项显示为选中状态

看起来只有在渲染后使用javascript显式地将其设置为-1,它才会显示为完全没有选择任何内容。它看起来好像不能在HTML中声明性地完成

如果您可以找到一种方法,用HTML编写标记,使其在加载时以这种方式显示,那么您可以调整代码隐藏中的呈现(使用
.AddAttribute()
或类似工具),但如果不能用声明完成,则需要javascript


(当然,您可以编写一个jQuery代码片段,将所有下拉列表更改为selectedIndex=-1,但您已经想到了!)

如果您将其绑定到页面加载事件上,它会执行回发
(AutoPostBack='True')
。只要更改索引,它就会简单地重新绑定

if (!IsPostBack)
{  
    BindDropDownList1();      
}
(或)

如果上述解决方案无效,请尝试添加一个空项,如图所示:

this.myDropDownList.Items.Add(new ListItem("Select...", ""));
你可以这样做

string selectStr=“选择”; string allStr=“ALL”

ListItem allLI=新的ListItem(allStr,allStr)
ListItem selectLI=新建ListItem(selectStr,selectStr)

DropDownList.Items.Add(选择li); DropDownList.Items.Add(allLI)

//用查询返回的列表填充DropDownList的代码


DropDownList.SelectedValue=selectStr

它不起作用,总是停留在索引0中发生了什么?确切地说,你想发生什么事而没有发生?啊,我明白你的意思。让我再告诉你。@我使用了DropDownList1.Attributes.Add(“selectedIndex”、“-1”),但它不起作用。我将在客户端创建一个函数来实现这一点。不管怎样,谢谢你的帮助。不,我不想添加新的列表项,请看jQuery是如何做的。jQuery是客户端代码,但你正在尝试从服务器端的codebhind来做。你必须这样做,或者尝试使用普通html控件并使用ajax。SelectedIndex与codebehind或客户端的属性相同,当.NET呈现DropDownList时,它将像普通html控件一样呈现。请阅读问题“不添加新的ListItem”,谢谢