ASP.NET中下拉列表的这两个属性是否可以单独使用?
我想在用户选择一些文字时检索null
值;我无法在Text
为Value
时检索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);
输出
鼠标
小鼠
答案 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 _ ”,并相应地处理它。