【问题标题】:How to add various SQL columns in the same dropdownlist ASPX如何在同一个下拉列表 ASPX 中添加各种 SQL 列
【发布时间】:2021-09-25 05:43:40
【问题描述】:

例如,数据库有这些列:

Name   Type   Place

我已经在下拉列表中显示了所有名称;如何在同一个下拉列表中显示所有三列 - 名称、类型、地点?

这就是我得到的

<tr>
    <td align="left" valign="top">Name:</td>
    <td align="left" colspan="3" style="height: 21px" valign="top">
    <asp:DropDownList ID="DropD_Name" runat="server" 
         BackColor="White" AppendDataBoundItems="true" 
         DataSourceID="SqlDS_Name" DataTextField="Name" DataValueField="Name" 
         ForeColor="Black" 
         SelectedValue='<%# Bind("Name") %>' Width="290px">
        <Items>
            <asp:ListItem Selected="True"></asp:ListItem>
        </Items>
    </asp:DropDownList>
    </td>
</tr>

SqlDS_Name:

<asp:SqlDataSource ID="SqlDS_Name" runat="server" 
     ConnectionString="<%$ ConnectionStrings:BlablablaConnectionString %>"
     SelectCommand="SELECT Name, Type, Place FROM dbo.vwnames">
</asp:SqlDataSource>

感谢您的帮助 最后这是查询的解决方案

SELECT CONCAT (Name,' - ',Type,' - ',Place) AS TextColumn,Name AS NameInfo FROM dbo.vwnames

【问题讨论】:

  • 标准下拉菜单不是用这个功能构建的。你需要一个 GridView

标签: c# asp.net sql-server webforms dropdown


【解决方案1】:

你可以试试这个。但是格式化会很糟糕。

SelectCommand="SELECT CONCAT(Name,' ',Type,' ',Place) AS Name FROM dbo.vwnames"

您可以尝试使用字符串 leftpad 或 rightpad 和比例字体来改进它,但这超出了这个问题的范围。最好试试 listview 或 gridview 之类的。

【讨论】:

    【解决方案2】:
    SELECT Name, Type, Place FROM dbo.vwnames
    

    改为:

    SELECT Name + ',' + Type + ',' + Place AS TextColumn,Name FROM dbo.vwnames
    

    结果:

    <asp:SqlDataSource ID="SqlDS_Name" runat="server" 
         ConnectionString="<%$ ConnectionStrings:BlablablaConnectionString %>"
         SelectCommand="SELECT Name + ',' + Type + ',' + Place AS TextColumn,Name FROM dbo.vwnames">
    </asp:SqlDataSource>
    

    然后DropDownList 改为:

    <asp:DropDownList 
       ID="DropD_Name"
       runat="server" 
       BackColor="White" 
       AppendDataBoundItems="true"
       DataSourceID="SqlDS_Name" 
       DataTextField="TextColumn" 
       DataValueField="Name" 
       ForeColor="Black" 
       SelectedValue='<%# Bind("Name") %>' 
       Width="290px">
      <Items>
        <asp:ListItem Selected="True"></asp:ListItem>
      </Items>
    </asp:DropDownList>
    

    【讨论】:

    • 我尝试过,但这是错误:DataBinding: System.Data.DataRowView no contiene una propiedad con el nombre "Name,Type,Place"
    • 太好了,我想这会起作用,但现在 SelectedValue 给出了一个错误“System.ArgumentOutOfRangeException: 'DropD_Name' tiene un SelectedValue que no es válido porque no existe en la lista de elementos。”跨度>
    • 我修改了代码。这工作正常。
    • 最后的查询是这样的:SELECT CONCAT (Name,' - ',Type,' - ',Place) AS TextColumn,Name AS Name FROM dbo.vwnames
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 2018-09-12
    相关资源
    最近更新 更多