Ajax编程备忘之——Combobox无刷新填充

王朝other·作者佚名  2006-04-03
窄屏简体版  字體: |||超大  

例子是用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 "";

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航