遇一棘手的问题,求解决方法:用户资料修改,有一级部门和二级部门。点击修改界面会根据用户原来所在部门在dropdownlist第一个显示原来所在部门
问题如下:用户资料修改,有一级部门和二级部门。点击修改界面,在页面修改的时候(page_load)根据用户原来所在部门在dropdownlist第一个显示原来所在部门,如果用户需要修改一级部门资料,则点击下拉列表选择其他部门,autopostback为true,根据一级部门动态生成二级部门绑定dropdownlist2.
现在的问题是:我在page_load里根据用户原来的部门信息("一棉")在dropdownlist的第一个item显示原来的部门,现在我想修改部门,点击下拉列表,选择"二棉",页面重新加载,又执行了方法page_load里面的startData,dropdownlist1里面还是显示的原来的一级部门“一棉”。如此循环,请问有什么办法解决啊?
注:我需要根据一级部门动态绑定二级部门资料,所以dropdownlist1的SelectedIndexChanged方法需要。那么我可以用js来触发SelectedIndexChanged事件吗?这样是不是就避免了页面的重新加载,就不会又重新执行startData方法,也就避免了dropdownlist11还是显示原来的部门信息
源码:
- C# code
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { startData(); } } //绑定初始数据 protected void startData() { DataSet ds = new DataSet(); UM.userName=Session["user"].ToString(); ds = UB.users_QueryUserDetail_by_Name(UM); ListItem myListItem0 = new ListItem("一棉", "firDepartmentName"); ListItem myListItem1 = new ListItem("二棉", "firDepartmentName"); string firDepartmentName = ds.Tables[0].Rows[0]["firDepartmentName"].ToString(); //一级部门 if (firDepartmentName=="一棉") { //移除所有的item DropDownList1.Items.Clear(); //这里把选择项“一棉”放在前面 this.DropDownList1.Items.Add(myListItem0); this.DropDownList1.Items.Add(myListItem1); } else { //移除所有的item DropDownList1.Items.Clear(); //这里把选择项“二棉”放在前面 this.DropDownList1.Items.Add(myListItem1); this.DropDownList1.Items.Add(myListItem0); } //二级部门 string secDepartmentName = ds.Tables[0].Rows[0]["secDepartmentName"].ToString(); DropDownList2.Items.Add(secDepartmentName); } //动态绑定二级部门数据 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { //清除DropDownList2原来的item DropDownList2.Items.Clear(); string FirDeparName = DropDownList1.SelectedItem.Text; DataSet ds = SDB.secDepartment_Query_by_FirDeparName_dataset(FirDeparName); DropDownList2.DataSource = ds; DropDownList2.DataValueField= "secDepartmentName";//绑—ropDownList2的DataValueField属性 DropDownList2.DataTextField = "secDepartmentName"; //绑—ropDownList2的DataTextField属性 DropDownList2.DataBind(); }[解决办法]
有没有调试一下先