使用.net 3.5中的两个值绑定下拉列表

时间:2013-02-13 08:37:02

标签: asp.net sql-server-2008

我希望使用某个分隔符将我的下拉列表与两个值绑定在[.net 3.5中的[ - '或'/']。

 qry = "SELECT CityName, MasterState.StateName FROM MasterCity INNER JOIN "+
              "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

DropCity.DataMember = "DeafultView";
//DropCity.DataTextField = "CityName";
//DropCity.DataValueField = "CityName";
DropCity.DataTextFormatString = "{0} - {1}";
DropCity.DataTextField = "CityName,StateName";
DropCity.DataSource = dt;
DropCity.DataBind();
DropCity.Items.Insert(0, "-Select-");**

我做到了,但它给出了错误

DataBinding:'System.Data.DataRowView'不包含名称为'CityName,StateName'的属性。“}

我该怎么做?

3 个答案:

答案 0 :(得分:3)

DropCity.DataTextField = "CityName,StateName";

DataTextField将查找列CityName,StateName,但它不存在。

可能您可以像这样更改您的查询

qry = "SELECT CityName, CityName + '-' + MasterState.StateName as CityState
    FROM MasterCity INNER JOIN "+
          "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

    DropCity.DataTextField = "CityState"; 

答案 1 :(得分:0)

不要认为一次绑定两件事是可能的,尽管你可以改变你的SQL查询以返回你需要的东西。

变化: -

qry = "SELECT CityName, MasterState.StateName FROM MasterCity INNER JOIN "+
  "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

qry = "SELECT CityName, MasterState.StateName, " + 
     "CityName + ' - ' + MasterState.StateName AS DDName " +
      " FROM MasterCity INNER JOIN "+
      "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

然后改变: -

DropCity.DataTextField = "CityName,StateName";

来: -

DropCity.DataTextField = "DDName";

答案 2 :(得分:0)

试试这个..我稍微修改了一下这个问题。希望它有效。

qry = "SELECT CityName , CityName + "-" + MasterState.StateName as CityNState FROM
        MasterCity INNER JOIN MasterState ON MasterCity.StateID = MasterState.StateID order by
        CityName";

DropCity.DataMember = "DeafultView";
DropCity.DataTextField = "CityNState";
DropCity.DataSource = dt;
DropCity.DataBind();
DropCity.Items.Insert(0, "-Select-");