0

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

这是一个例子:

http://jsfiddle.net/eL8sn/

4

3 回答 3

0

你的意思是这样吗?

DropDownList1.SelectedIndex = -1;

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

ETA:我现在明白你在说什么了。而且恐怕我看不到如何从服务器端完成它。您在服务器端所能做的就是控制渲染。据我所知,即使您渲染此代码:

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

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

看起来好像只有在渲染后使用 javascript 将其显式设置为 -1 才会出现,并且绝对没有选择任何内容。看起来好像它不能在 HTML 中以声明方式完成。

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

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

于 2013-02-15T14:36:39.497 回答
0

如果您在Page_Load事件上绑定它,(AutoPostBack='True')它会回发。每次更改索引时它都会重新绑定

if (!IsPostBack)
{  
    BindDropDownList1();      
}

(或者)

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

this.myDropDownList.Items.Add(new ListItem("Select...", ""));
于 2013-02-15T14:43:32.573 回答
0

你可以这样做

字符串 selectStr = "选择"; 字符串 allStr = "全部"

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

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

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

DropDownList.SelectedValue = selectStr;

于 2013-02-16T06:24:11.173 回答