实现无刷新DropDownList联动效果。[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 tqg1023 的 blog

说明:本文在http://blog.csdn.net/cuike519/archive/2004/08/22/81727.aspx文章的基础上做了一点修改。

       在做一个文章添加功能时,想在选择大类后,自动将其所属二级小类显示出来,使用dropdownlist的selectedindexchanged事件可以很容易实现,但每次选择后页面总要刷新一次,让人感觉很不爽。为实现dropdownlist无刷新二级联动,这几天在网上找了些资料,但都无法达到我想要的效果,经过反复调试,现已基本实现了此功能,现将代码附下。

一、数据库设计:

字段名 数据类型 说明
classid 自动编号 类编号
classname     varchar(8) 类名
upclassid int(4) 上级类编号
classlevel int(4) 类级别,1为大类,2为小类

二、设计步骤:
1、首先,我们新建一个页面droptest.aspx,在其中放入两个dropdownlist控件:dropdownlist1和dropdownlist2,其完整代码如下:
<%@ page language="c#" codebehind="droptest.aspx.cs" autoeventwireup="false" inherits="studyweb.droptest" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
 <head>
  <title>webform2</title>
  <meta content="microsoft visual studio .net 7.1" name="generator">
  <meta content="c#" name="code_language">
  <meta content="javascript" name="vs_defaultclientscript">
  <meta content="
http://schemas.microsoft.com/intellisense/ie5" name="vs_targetschema">
  <script>
      function load(classid){           //classid为接收传递的大类编号
      var drp2 = document.getelementbyid("dropdownlist2");
      function removeall(oelem) {             //清除dropdownlist2的所有项
      var i = 0;
      for (i = oelem.length; i >= 0; i--){
      oelem.options.remove(i);
      }
      }
      removeall(drp2) 
       var ohttpreq = new activexobject("msxml2.xmlhttp");
       var odoc = new activexobject("msxml2.domdocument");
       ohttpreq.open("post", "dropchild.aspx?classid="+classid, false);         //调用读取小类数据的页面,将大类
                                                                                                                           // 编号值传递过去
       ohttpreq.send("");
       result = ohttpreq.responsetext;
       odoc.loadxml(result);
       items1 = odoc.selectnodes("//classname/table/classname");              //读取所有请求大类所属小类的类名
       items2 = odoc.selectnodes("//classname/table/classid");                   //读取所有请求大类所属小类的编号
       var itemslength=items1.length;
       for(i=0;i<itemslength;i++)                                                                 //将小类的类名和编号赋予dropdownlist2
   {
      var newoption = document.createelement("option");
      newoption.text=items1[i].text;

本文关键:实现无刷新DropDownList联动效果。
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top