频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者:hnwanghb 出处:巧巧读书 2006-05-16 进入讨论组

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

静态页面:http://www.qqread.com/dotnet/n160111002.html 更多文章 更多内容请看Ajax技术专题Java编程开发手册Ajax技术应用开发专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章