【问题标题】:How to bind the selected value of a DropDownList如何绑定 DropDownList 的选定值
【发布时间】:2010-10-10 21:22:36
【问题描述】:

数据绑定都是关于声明性代码的,对吧?所以我用属性指定我想要的东西,其余的由框架处理。除非我弄错了,数据绑定与 S&M 有关,对吧?

那么,为什么 DropDownList 控件只为其数据源(即列表源)提供绑定字段,而不为其实际数据字段提供绑定字段。即如何将我的名字 DropDownList 的选定值绑定到我的 Person 记录中的 Name 字段?这是微软的严重疏忽,还是我的疏忽?

如果我仍然需要手动设置和读取选定的值,那么双向数据绑定有什么意义?

【问题讨论】:

    标签: asp.net data-binding


    【解决方案1】:

    我不知道它是否真的对您有帮助,但是您是否尝试在 Code behind 上设置“SelectedValue”?

    例子:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        DropDownInfoSource.SelectedValue = "1" ' your value, here
    End Sub
    

    【讨论】:

    • 最终选择的值将被选择一个或另一个选择改变......所以每次加载时都需要改变它的实际值,而不是初始值.....
    【解决方案2】:

    您可能想要执行以下代码。 您不能以声明方式设置“SelectedValue”,而是通过说 "SelectedValue= 您实际上是在控件绑定数据时设置值。

    <asp:DropDownList
                    ID="DropDownInfoSource"
                    runat="server"
                    DataSourceID="_employeeDataSource"
                    DataTextField="EmployeeName"
                    DataValueField="EmployeeID"
                    SelectedValue='<%# Bind("EmployeeID") %>'
                    />
    

    【讨论】:

    • 谢谢,我有点跑题了:我只是在 Intellisense 中查找了一个 Value 属性,但没有显示,所以我没有进一步看就问了。我们在 cmets 中需要一个尴尬的表情。
    • 我在 .NET 4 中收到一条错误消息:“必须将对 Bind 的调用分配给模板内控件的属性”,即使该控件位于 GridView 的 ItemTemplate 中。将 Bind 更改为 Eval 对我有用。
    • @Andrew - 我的在编辑模板字段中,我使用的是 asp.NET 4.0。我尝试使用 EVAL 而不是 Bind,但它仍然不起作用。有什么想法吗?
    • 这个想法是不要把双引号中的Bind表达式“”放在单引号中''
    • @AndrewShepherd:很抱歉把这个从时间深处拖了回来,但你知道是否有任何具体原因导致该设置没有出现在智能感知中吗?
    【解决方案3】:

    您可以在其中定义数据源、数据文本字段(列表中显示的内容)和数据值字段。

    示例(我有一个包含“EmployeeID”列和“EmployeeName”列的数据表):

    dropdownlist1.datasource = DT
    dropdownlist1.datatextfield = "EmployeeName"
    dropdownlist1.datavaluefield = "EmployeeID"
    dropdownlist1.databind()
    

    【讨论】:

    • 如果您阅读我的问题,您会发现我知道这些。正如我所问的,我想知道如何将选定的值绑定到另一个数据源。
    • 你知道没关系。如果您的问题应该对其他人有益,也许它应该包括各种解决方案。
    猜你喜欢
    • 2016-04-19
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多