【问题标题】:Data Web Controls Display Value vs Insert ID (foreign key) for Stored ProceduresData Web 控件显示存储过程的值与插入 ID(外键)
【发布时间】:2011-09-20 18:19:18
【问题描述】:

我有一系列由 ASP.NET DropDownLists(由 DataSourceID 的 SqlDataSource 中的选择命令填充)、 元素和 jQueryUI 自动完成插件组成的组合框。不过后两者可以忽略。

每个 DropDownList 控件都代表一个特定的“用户”类别,并根据该类别的 Users 表动态填充。这是数据库结构:

Users (ID, Name) -- I use a join to display the Name, but I wish to USE the ID.
Team (ID, Member1, Member2, Member3) --each member is a foreign key to the
                                     --"Users" table and used to populate the
                                     --DropDownLists respectively.

问题:我需要知道如何在控件中显示Name 字段,但实际上使用所选值的ID 作为我的存储过程的输入。

  • 此外,最好使用单个查询和 SqlDataSource 来填充所有下拉列表。目前,我正在为我拥有的 13 个用户类别中的每一个使用单独的“选择”语句。

【问题讨论】:

    标签: asp.net foreign-keys sqldatasource web-controls


    【解决方案1】:

    此外,最好使用单个查询和 SqlDataSource 填充所有下拉列表。目前我正在使用单独的 我拥有的 13 个用户类别中的每一个的“选择”语句。

    不幸的是,您必须使用单独的数据源,因为如果您使用 SQLDataSource,则不支持此功能。

    为了使用用户的ID,将DataValueField设置为ID(假设列名是ID,如你所指)

    为了显示用户的姓名,请将DataTextField 设置为Name(假设列名称为名称,如您所指)

    因此,DropDownList 应如下所示:

    <asp:dropdownList id="your_id" DataTextField="Name" 
    DataSourceID="YourSqlDataSourceID" DataValueField="ID" runat="server" />
    

    Linking MSDN Documentation.

    【讨论】:

    • 经过彻底测试和批准,呵呵。非常感谢:)
    • 在旁注中,我正在尝试使用单个 SqlDataSource,并将所有查询的“union all”解析为单独的 DataTables。不确定这是否可能或聪明,但我仍在学习:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多