如果您在设置ListItem.Value
值之前将Text
设置为某个值,则Text
和Value
都将设置为相同的值。我可以解决这个问题,但我只是想知道为什么会这样?这是因为“必须”设置在屏幕上吗?以及为什么在默认值为空字符串时覆盖。
.Net 3.5
ListItem li = new ListItem();
li.Value = "abc"; //Text is now = "abc"
li.Text = "def";
li.Value = "qwe"; //Text remains "def"
答案 0 :(得分:7)
这是因为Text
属性的getter以这种方式实现:
get
{
if (this.text != null)
{
return this.text;
}
if (this.value != null)
{
return this.value;
}
return string.Empty;
}
MSDN:
使用Text属性指定或确定显示的文本 列表控件由ListItem表示的项目。注意如果 Text属性包含null,get访问器返回值 价值属性。如果Value属性反过来包含null, 返回String.Empty。
Value
属性是另一种方式:
如果Value属性包含null,则get访问器返回 Text属性的值。如果包含Text属性 null,返回String.Empty。