例子是用Asp.net编写,以下内容仅供自己备忘,观众看不明白,可以留言!有问必答!
编程思路如下:
1:后台根据前台传来的上级部门ID,获取对应的下级部门,然后组成格式为
部门代码1-部门名称1|部门代码2-部门名称2|部门代码3-部门名称3.....
前台Client端根据传来的字符串进行拆分,然后用javascript重新组织下级部门的Combobox
2:后台取Combobox值的时候用Request[''''ComboboxID'''']方式获取,不用Combobox.Value
[第2条适用于Asp.net]
javascript部分的代码:
//上级部门修改后,下级部门也要随着改动 function DepartmentChange() { var objDept=document.all[''''cmbDeptID'''']; var objSubDept=document.all[''''cmbSubDeptID'''']; if(objDept && objSubDept) { //Ajax调用 var response = Register.RefillDept(objDept.value,''''-''''); if(response.value!="") { var length=1; while(length!=0) { var length=objSubDept.options.length; for(var i=0;i<length;i++) objSubDept.options.remove(i); length=length/2; } var strItem=response.value.split(''''|''''); if(strItem.length>0) { for(var n=0;n<strItem.length;n++) { var option=document.createElement("option"); option.value=strItem[n]; option.text=strItem[n]; //alert(option.value); objSubDept.options.add(option); } } } } }
Asp.net后台Server端代码:
/// <summary> /// 获取部门改变后对应下级部门的信息 /// </summary> /// <param name="strDept">部门编码-部门名称</param> /// <param name="strSeparetor">拆分符号</param> /// <returns>对应下级部门,格式:部门1|部门2|部门3</returns> [Ajax.AjaxMethod()] public string RefillDept(string strDept,string strSeparetor) { string strDeptString="";
try { string []strItem=strDept.Split(strSeparetor.ToCharArray()); if(strItem.Length>1) { OLExamDepartment objOLExamDepartment=new OLExamDepartment();
DataSet dstDept=objOLExamDepartment.GetDepartInfo(strItem[0]); if(dstDept!=null) { if(dstDept.Tables[0].Rows.Count>0) { //组成返回字符串 for(int i=0;i<dstDept.Tables[0].Rows.Count;i++) { strDeptString=strDeptString+dstDept.Tables[0].Rows[i]["DeptCode"].ToString()+"-"+dstDept.Tables[0].Rows[i]["DeptName"].ToString()+"|" ; } } }
if(strDeptString.Length>0) { strDeptString=strItem[0]+"-本部|"+strDeptString.Substring(0,strDeptString.Length-1); } else { strDeptString=strItem[0]+"-本部"; } } return strDeptString; } catch(Exception ex) { return ""; } }
[C语言系列]combobox 动态添加value值和Text值 . [C语言系列]Combobox出现System.Data.DataRowView的原因,以及… [C语言系列]C#中combobox 控件属性、事件、方法(部分常用) [VB.NET程序]Combobox属性及使用方法详解 [Delphi程序]获取其他进程中ListBox和ComboBox的内容
|