下拉列表的值和文本属性可以单独使用吗?

时间:2011-03-08 11:54:04

标签: asp.net drop-down-menu

ASP.NET中下拉列表的这两个属性是否可以单独使用?

我想在用户选择一些文字时检索null值;我无法在TextValue时检索null属性。例如:

l1 = new ListItem("Cat", null);
Console.WriteLine(l1.Value);

输出

  

在另一种情况下,当两个属性都有不同的字符串时,我在使用Value属性时会在Text属性中获取字符串。例如:

l2 = new ListItem("Cat", "Mouse");
DropDownList ddl = new DropDownList();
ddl.Items.Add(li);
ddl.SelectedIndex = 0;
Console.WriteLine(ddl.SelectedValue);
Console.WriteLine(ddl.Text);

输出

  

鼠标
  小鼠

2 个答案:

答案 0 :(得分:2)

你的观察是正确的。与直觉告诉我们的情况相反,ListControl.Text(以及DropDownList.Text会返回当前所选Text的{​​{1}}属性。以下摘自the documentation

  

ListControl.Text属性

     

获取或设置ListControl控件的SelectedValue属性。

     

[...]

     

<强>说明

     

Text属性获取并设置SelectedValue属性的相同值。

要获取所选ListItem的{​​{1}}属性,请使用Text检索当前选定的列表项,然后访问ListItem属性。

所以,你看到的行为是设计的。为什么.NET开发人员以这种不直观的方式指定SelectedItem?我不知道。也许有必要支持Text界面......

答案 1 :(得分:0)

只需将值设置为某个标记值,如空字符串或一些疯狂的字符串“ JANDKJASD _ ”,并相应地处理它。