/// <summary> /// 市 /// </summary> private void City() { ddlCity.Items.Clear(); DataTable TemDt = new DataTable(); TemDt = HSSM_Public_DB.PblicQuery("*", "City", "ProvinceCode=" + ddlProvice.SelectedValue); int m = 0; for (int i = 0; i < TemDt.Rows.Count; i++) { ListItem li = new ListItem(); li.Text = TemDt.Rows[i]["CityName"].ToString(); li.Value = TemDt.Rows[i]["Code"].ToString(); if (!string.IsNullOrEmpty(CityCode) && li.Value == CityCode) { li.Selected = true; m++; } ddlCity.Items.Add(li); } ddlCity.Items.Insert(0, new ListItem("-请选择市-", "-1")); if (m == 0) { ddlCity.SelectedIndex = 0; CityCode = ddlCity.SelectedValue; } }
不知道为什么运行了:CityCode = ddlCity.SelectedValue; 之后就一直回到: ddlCity.Items.Clear();一直执行,到了CityCode = ddlCity.SelectedValue;又回去
陷入死循环。。。原因在哪。。。
是City()被循环调用了吧?
你看下 ddlCity的 点击和更改事件,在这边加断点看哪调用了。
是不是下面这种情况啊:
ddlCity.SelectedIndex = 0;
这句触发了ddlCity的SelectIndexChanged事件,然后事件中有调用了City()方法,造成了死循环。