联动下拉菜单是我们平时做web开发时经常会遇到的一种情况。有多种实现的方式。比如数据一次加载在客户端联动或者回调填充。前段时间要给部门内部做个简单的培训用到相关的javascript和控件开发的时候,就那这个当作demo来做了。控件大概有4个部分组成,
1:控件的cs代码(AutoFillDDL.cs),2:客户端回应服务器段返回的数据,构建Option的js(AutoFill.js),3.服务器段写获取数据的方法的接口(IXBCallbackHandler)4。发送xmlHTTP请求的类的js(NetLoad.js)
AutoFillDDL.cs

  1一个下拉联动控件的实现using System;
  2一个下拉联动控件的实现using System.Collections.Generic;
  3一个下拉联动控件的实现using System.Text;
  4一个下拉联动控件的实现using System.Web.UI.WebControls;
  5一个下拉联动控件的实现using System.Web.UI;
  6一个下拉联动控件的实现using System.ComponentModel;
  7一个下拉联动控件的实现using Beyondbit.Soft3.WebControl.Designer;
  8一个下拉联动控件的实现
  9一个下拉联动控件的实现[assembly: WebResource("Beyondbit.Soft3.WebControl.Js.AutoFill.js""application/x-javascript")]
 10一个下拉联动控件的实现[assembly: WebResource("Beyondbit.Soft3.WebControl.Js.NetLoad.js""application/x-javascript")]
 11一个下拉联动控件的实现namespace Beyondbit.Soft3.WebControl
 12}

AutoFill.js

 1一个下拉联动控件的实现//构造函数,用于声明该类 
 2;

IXBCallbackHandler.cs

 1一个下拉联动控件的实现using System;
 2一个下拉联动控件的实现using System.Collections.Generic;
 3一个下拉联动控件的实现using System.Text;
 4一个下拉联动控件的实现using System.Web.UI.WebControls;
 5一个下拉联动控件的实现
 6一个下拉联动控件的实现namespace Beyondbit.Soft3.WebControl
 7}

NetLoad.js

 1}

本来回调使用的是微软本身的ICallBack但是在实现多级关联的时候,即回调中又触发另外一次回调的时候js报错了,大概看了一下,应该是用了全局变量,在第二次回调的时候变量的值又被改变了。循环因子大于索引了。。 代码大部份已经给了详细的注释。。
汗,忘了讲怎么调用了,
编译成dll之后,在工具栏拖到页面上即可使用多级联动就拖多个,对应不同的父子关系
可以在使用的页面或者继承该控件的子控件中实现IXBCallbackHandler接口,

parent就是触发联动的下拉菜单的选中项的,callItemID就是联动控件的ClientID,在多级联动中可以根据这个判断这个值来判断是哪个回调,然后相应的返回各自的对应数据
取数据的方法是自己定义的返回一个ListItem的数组即可,因为没有放演示的空间 。。唉

相关文章:

  • 2022-12-23
  • 2021-12-22
  • 2021-07-23
  • 2021-07-24
  • 2021-09-04
  • 2021-09-16
猜你喜欢
  • 2021-11-06
  • 2022-03-02
  • 2022-12-23
  • 2021-07-26
  • 2022-02-06
  • 2022-12-23
  • 2021-11-01
相关资源
相似解决方案