请教一个有关CheckBoxList的绑定问题 ?
现在有一个程序,需要绑定一个指定经销商的省份,地区信息,页面上有两个CheckBoxList,一个绑定省份,另一个通过绑定的省份来绑定城市,由于一个经销商可以负责多个省份和多个地区所以在数据库中省份和地区的存储也有特殊要求,例如:如果一个经销商如果有多个省份 那么在数据库中的省份字段就以逗号分隔开省份;如"01,02,03",而地区是由省份编号+城市编号得到的;例如一号省份的一号城市就是 01+001;就是“01001”, 同样多个的地区信息间也以逗号隔开,例如"01001,02002,06008,...";
我写的加载省份信息CheckBoxList的代码:
/// <summary>
/// 绑定负责省份多选框信息
/// </summary>
private void BindCBLProvince()
{
Area area = new Area();
IList<DefProvince> provincelist = area.GetAllProvince();
CBLProvince.DataSource = provincelist;
CBLProvince.DataTextField = "provincename";
CBLProvince.DataValueField = "provinceid";
CBLProvince.DataBind();
}
通过省份编号加载城市的信息的代码:
/// <summary>
/// 绑定负责地区多选框信息
/// </summary>
/// <param name="provinceid">所选择的省份编号</param>
private void BindCBLCity(string provinceid)
{
Area area = new Area();
IList<DefCity> citylist = area.GetCityByProvince(provinceid);
foreach (DefCity def in citylist)
{
if (!this.CBLCity.Items.Contains(new ListItem(def.CityName, provinceid + def.CityId)))
{
this.CBLCity.Items.Add(new ListItem(def.CityName, provinceid + def.CityId));
}
}
}
现在我通过经销商编号查询出指定经销商的全部信息,也包括省份地区信息,在绑定时,省份信息钩选的是正确的,但城市信息则有错误,只能钩选出最后一个所选省份的城市,前面钩选的被后面的覆盖了,请教高手怎么解决:
以下是我的代码:
IList<DefDealer>dealerlist=dealer.QueryDealerByid(id);
string strlocalProvince = dealerlist[0].LocalProvince;
string strlocalCity = dealerlist[0].LocalCity;
string[] proArray = strlocalProvince.Split(',');
string[] cityArray = strlocalCity.Split(',');
for (int nI = 0; nI < proArray.Length; nI++)
{
int nIndex=Convert.ToInt32(proArray[nI].ToString())-1;
CBLProvince.Items[nIndex].Selected = true;
BindCBLCity(CBLProvince.Items[nIndex].Value);
for (int nN = 0; nN < cityArray.Length; nN++)
{
string strpro = cityArray[nN].Substring(0, 2);
string strcity = cityArray[nN].Substring(2, 3);
int nCount = Convert.ToInt32(strpro) - 1;
int nCity = Convert.ToInt32(strcity) - 1;
CBLCity.Items[nCity].Selected = true;
}
}