zoukankan      html  css  js  c++  java
  • Ajax编程备忘之——Combobox无刷新填充

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

  • 相关阅读:
    MyOD-Linux od命令的实现
    20175320 2018-2019-2 《Java程序设计》第9周学习总结
    MyCP-实现文件的复制以及进制转换
    20175320 2018-2019-2 《Java程序设计》第8周学习总结
    2018-2019-2 20175320实验二《Java面向对象程序设计》实验报告
    20175320 2018-2019-2 《Java程序设计》第7周学习总结
    类定义20175320
    20175320 2018-2019-2 《Java程序设计》第6周学习总结
    结对编程项目-四则运算阶段性总结
    算法复习周------递归之“合并排序”
  • 原文地址:https://www.cnblogs.com/godwar/p/1047445.html
Copyright © 2011-2022 走看看