【问题标题】:How to display multiple db columns in DataTextField as one item not side by side in dropdownlist如何将 DataTextField 中的多个 db 列显示为一个项目,而不是在下拉列表中并排显示
【发布时间】:2013-10-18 00:57:51
【问题描述】:

数据库表结构:Store(id, storeName, country, region, area,continent)

Location (DropDownList) 下的 UI 上,我必须将国家、地区、地区、大陆显示为一个列表。假设当用户单击位置DropDownList 时,每个项目应该是国家或地区或地区或大陆。

我可以从不同的论坛中看到,大多数人都在尝试将 DropDownList 中的数据合并为名称,例如(名字 + 姓氏)作为名称,其中两列值显示为一个项目。但是,我试图得到相反的结果,但还没有成功。

假设,国家(美国、英国)、地区(东部、西部)、地区(东部 1、东部 2)、大陆(欧洲、亚洲)

位置

美国
英国

西
东 1
欧洲
亚洲
......

到目前为止我尝试过的是

        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection("Data Source=sesqlAB\\APP;Database=BD12;user id=id;password=pwd;Persist Security Info=true;"))
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("Select country,region,area, continent as CombinedLocation from Store", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
        }

        _UIDDListLocation.DataSource = dt;
        _UIDDListLocation.DataTextField = "CombinedLocation";
        _UIDDListLocation.DataValueField = "CombinedLocation";
        _UIDDListLocation.DataBind();    

问题:在 SQL 语句中使用逗号,在这种情况下,我总是在 DropDownList 中获得最后选择的列 continent。如果我使用 + 号,那么我会并排获得列值,我不希望这样。

有什么想法吗?

【问题讨论】:

    标签: asp.net sql drop-down-menu webforms


    【解决方案1】:

    立即解决您的问题的方法是使用SQL UNION。像这样的:

    SELECT Country AS CL FROM STORE 
    UNION
    SELECT Region AS CL FROM STORE 
    UNION
    SELECT Area AS CL FROM STORE 
    UNION
    SELECT Continent AS CL FROM STORE 
    

    然后,

    ....ListLocation.DataValueField = "CL"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多