下拉列表的value和text属性可以独立使用吗?

发布于 2024-10-20 17:30:33 字数 659 浏览 2 评论 0原文

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

我想在用户选择某些文本时检索 null 值;我不能,因为每当 Valuenull 时它都会检索 Text 属性。例如:

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

输出是

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

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

输出是

鼠标
鼠标

Can these two properties of a dropdown list in ASP.NET be used independently?

I wanted to retrieve a null value when the user selects some text; I couldn't as it retrieves the Text property whenever the Value is null. Eg:

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

The output is

Cat

In another situation, when both the properties have different strings, I get the string in the Value property when I use the Text property. Eg:

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

The output is

Mouse
Mouse

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖心男生 2024-10-27 17:30:33

你的观察是正确的。与直觉告诉我们的相反,ListControl.Text(以及 DropDownList.Text返回 TextListItem 的 code> 属性。以下是文档的摘录

ListControl.Text 属性

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

[...]

备注

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

要获取所选 ListItemText 属性,请使用 SelectedItem 检索当前所选列表项,然后访问 Text属性。

因此,您所看到的行为是设计使然的。为什么.NET 开发人员以如此不直观的方式指定ListControl.Text?我不知道。也许有必要支持 ITextControl 接口......

Your observation is correct. Contrary to what intuition tells us, ListControl.Text (and, thus, DropDownList.Text) does not return the Text property of the currently selected ListItem. Here's an excerpt from the documentation:

ListControl.Text Property

Gets or sets the SelectedValue property of the ListControl control.

[...]

Remarks

The Text property gets and sets the same value that the SelectedValue property does.

To get the Text property of the selected ListItem, use SelectedItem to retrieve the currently selected list item and then access the Text property.

So, the behavior you are seeing is by design. Why did the .NET developers specify ListControl.Text in such an unintuitive way? I have no idea. Maybe it was necessary to support the ITextControl interface...

谜泪 2024-10-27 17:30:33

只需将该值设置为一些哨兵值,例如空字符串或一些疯狂的字符串“JANDKJASD_”并进行相应的处理。

Just set the value to some sentinel value like an empty string or some crazy string "JANDKJASD_" and handle it accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文