我希望使用某个分隔符将我的下拉列表与两个值绑定在[.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'的属性。“}
我该怎么做?
答案 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-");