设置SelectedIndex -1 ASP.NET DropDownList

时间:2013-02-15 14:34:21

标签: asp.net .net

有没有办法选择-1索引而不像jQuery那样从代码中添加new ListItem("", "-1",true))

以下是一个例子:

http://jsfiddle.net/eL8sn/

3 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

DropDownList1.SelectedIndex = -1;

这就是通常从代码隐藏中做到这一点的方式。

ETA:我现在看到你在说什么。而且我担心我不知道如何从服务器端完成它。您在服务器端可以做的就是控制渲染。据我所知,即使你渲染这段代码:

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

...它仍然出现,顶部选项似乎被选中。

看起来好像只有在渲染后用javascript明确地将其设置为-1才会出现绝对没有选中的内容。 出现好像无法在HTML中以声明方式完成。

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

(您当然可以编写一个jQuery片段来将所有下拉列表更改为selectedIndex = -1,但您会想到这一点!)

答案 1 :(得分:0)

如果您在 Page_Load 事件上绑定它,它会回复 (AutoPostBack='True') 。它只会重新修改索引的更改时间

if (!IsPostBack)
{  
    BindDropDownList1();      
}

(或)

如果上述解决方案不起作用,请尝试添加空项目,如下所示:

this.myDropDownList.Items.Add(new ListItem("Select...", ""));

答案 2 :(得分:0)

你可以这样做

string selectStr =&#34; SELECT&#34 ;; string allStr =&#34; ALL&#34;

ListItem allLI = new ListItem(allStr,allStr);
ListItem selectLI = new ListItem(selectStr,selectStr);

DropDownList.Items.Add(selectLI); DropDownList.Items.Add(allLI);

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

DropDownList.SelectedValue = selectStr;