转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
Ajax编程备忘之——Combobox无刷新填充         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:679 更新时间:2009/4/23 11:30:46

 

       例子是用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的内容  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台