2013-02-15 71 views

回答

0

你的意思是这样的吗?

DropDownList1.SelectedIndex = -1; 

这就是通常从代码隐藏的方式。 ETA:我现在看到你在说什么了。我担心我不知道如何从服务器端完成。你可以在服务器端做的所有事情都是控制渲染。据我所知,即使您呈现此代码:

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

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

看起来好像只有在渲染后明确将其设置为-1后,它才会显示为绝对没有选中的内容。它出现就好像它不能在HTML中声明一样。

如果您可以找到一种方法在HTML中编写标签,使其在加载时出现这种方式,那么您可以在代码隐藏(使用.AddAttribute()或类似方法)中调整渲染,但是如果无法使用一个声明,它需要JavaScript。

(你当然可以写一个jQuery片断改变所有的下拉菜单来的selectedIndex = -1,但你会想到这一点!)

+0

它不工作,始终停留在索引0 – christiangobo 2013-02-15 14:38:46

+0

会发生什么?你希望发生的事情不会发生,确切地说是什么? – 2013-02-15 14:40:31

+0

请看这个http://jsfiddle.net/eL8sn/ – christiangobo 2013-02-15 14:41:18

0

如果你在的Page_Load事件它结合它并回发(AutoPostBack='True')。它会简单地重新绑定索引被改变

if (!IsPostBack) 
{ 
    BindDropDownList1();  
} 

(或)

以往时间如果上述溶液多申“T工作尝试添加一个空项,如下所示:

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

不,我不想添加一个新的ListItem,请看看jQuery是如何工作的http://jsfiddle.net/eL8sn/ – christiangobo 2013-02-15 14:55:55

+0

JQuery是一个客户端代码,但你试图从codebhind这是服务器端。必须这样做,或者尝试使用正常的html控件并为此使用ajax。 – coder 2013-02-15 14:58:25

+0

SelectedIndex是代码隐藏或客户端的相同属性,当.NET渲染DropDownList时,它将像普通的html控件一样呈现。 – christiangobo 2013-02-15 15:05:20

0

你可以做到这一点

串selectStr = “SELECT”; string allStr =“ALL”

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

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

//代码,以填补该查询返回

列表DropDownList的

DropDownList.SelectedValue = selectStr;

+0

感谢您的问题“无需添加新的ListItem” – christiangobo 2013-02-16 19:23:58