asp.net – SelectedValue对DropDownList的SelectedItem.Value
我正在编写一个旧项目,然后由几个人修补多年。在某些地方,他们使用SelectedValue属性和其他使用SelectedItem.Value的地方。
问题:SelectedValue只是SelectedItem.Value或SelectedValue的语法糖在引擎盖下工作不同吗?哪一个更好? 编辑:SelectedItem.Text被替换为SelectedItem.Value 解决方法
SelectedValue返回与SelectedItem.Value相同的值。
SelectedItem.Value和SelectedItem.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没有。 SelectedValue的getter在编写代码时更快,执行性能的问题没有真正的理由要讨论。此外,SelectedValue的一个很大的优点是使用Binding表达式时。 编辑数据绑定场景(您不能使用SelectedItem.Value) <asp:Repeater runat="server"> <ItemTemplate> <asp:DropDownList ID="ddlCategories" runat="server" SelectedValue='<%# Eval("CategoryId")'> </asp:DropDownList> </ItemTemplate> </asp:Repeater> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – User.Identity.Name在ASP.Net MVC中为空
- asp.net – 这是一个很好的SOA架构吗?
- asp.net-mvc – SportStore:WebUI.WindsorControllerFacto
- asp.net-mvc – 存储库模式和单元测试ASP.NET Web API
- 回收ASP.NET应用程序是否会激起用户的兴趣?
- 在(asp.net wcf)Web应用程序中存储文件的最佳方法是什么
- asp.net-mvc – 无法解析绑定敲除错误
- asp.net-mvc – Unity.Mvc3 vs Unity.Mvc
- asp.net – 如何在转发器中绑定gridview?
- asp.net-mvc-2 – 如何在Asp.net MVC 2中使用Base ViewMode
- asp.net-mvc – 可以将页脚添加到MVCContrib网格
- asp.net – 存储DotNetOpenAuth信息和用户信息检
- ASP.NET拒绝访问该路径
- .NET Core MVC RequestLocalization忽略DefaultR
- asp.net-mvc – 缓存的最佳解决方案
- 是否可以在OSX上使用Razor作为独立库(没有任何as
- entity-framework – 如何升级EF Core Tools
- asp.net-mvc-2 – 如何在ASP.NET MVC2中为Html.L
- 在两个应用程序中拆分ASP.NET应用程序 – 处理共
- asp.net-mvc – 从控制器操作返回301重定向