gpt4 book ai didi

asp.net - DropDownList 的 SelectedValue 与 SelectedItem.Value

转载 作者:行者123 更新时间:2023-12-02 01:42:44 25 4
gpt4 key购买 nike

我正在开发一个旧项目,多年来由几个人编写并修补。在某些地方,他们使用了 SelectedValue 属性,而在其他地方,他们使用了 SelectedItem.Value。

问题:SelectedValue 只是 SelectedItem.ValueSelectedValue 的语法糖 在幕后的工作方式不同吗?哪一个表现更好?

编辑: SelectedItem.Text 已替换为 SelectedItem.Value

最佳答案

SelectedValue 返回与 SelectedItem.Value 相同的值。

SelectedItem.ValueSelectedItem.Text 可能具有不同的值,性能不是这里的一个因素,只有这些属性的含义很重要。

<asp:DropDownList runat="server" ID="ddlUserTypes">
<asp:ListItem Text="Admins" Value="1" Selected="true" />
<asp:ListItem Text="Users" Value="2"/>
</asp:DropDownList>

这里,ddlUserTypes.SelectedItem.Value == ddlUserTypes.SelectedValue 两者都会返回值“1”。

ddlUserTypes.SelectedItem.Text 将返回“Admins”,这与 ddlUserTypes.SelectedValue

编辑

在底层,SelectedValue 看起来像这样

public virtual string SelectedValue
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
{
return this.Items[selectedIndex].Value;
}
return string.Empty;
}
}

SelectedItem 看起来像这样:

public virtual ListItem SelectedItem
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
{
return this.Items[selectedIndex];
}
return null;
}
}

这两个属性之间的一个主要区别是 SelectedValue 也有一个 setter,因为 SelectedItem 没有。 SelectedValuegetter在编写代码时速度更快,并且执行性能问题没有真正的理由被讨论。 SelectedValue 的一大优点是使用绑定(bind)表达式。

编辑数据绑定(bind)场景(不能使用 SelectedItem.Value)

<asp:Repeater runat="server">
<ItemTemplate>
<asp:DropDownList ID="ddlCategories" runat="server"
SelectedValue='<%# Eval("CategoryId")%>'>
</asp:DropDownList>
</ItemTemplate>
</asp:Repeater>

关于asp.net - DropDownList 的 SelectedValue 与 SelectedItem.Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com