[原]无刷新三级连动用户控件

因为最近做的项目需要3级联动显示分类,同时分类又有几种不同类型,如产品类型、公司类型等,出于提高代码的重用性考虑,参考网上代码特将3级联动做成用户控件!

实现效果说明:
1、用户控件的特性——使用和重用简单,通过简单的设置一个属性,就可实现不同类型种类的联动;
2、废话下,无刷新获取子类;

使用技术的选择:

1、AjaxPro的ajax框架

不是我不想用微软的asp.net ajax框架来实现,只是据说udatePanel是一种局部显示、但仍然是整页回传到局部更新,另外微软的ajax每个页面,都必须要一个scriptmanager,麻烦了点,最主要的是本人项目不是soa的,所以客户端调用服务的方法都是页面方法,而不是Service method,于是先天上早已决定了,不能使用AjaxControlToolkit现成的联动控件CascadingDropDown,如果你的项目是soa的你可以选择CascadingDropDown;由于以上原因,选择了相对“原始”的Ajax框架AjaxPro.2(2.0版本),不过使用很简单

2、给用户控件增加属性

给用户控件添加属性


废话不多说,具体实现见代码:

用户控件的cs

用户控件的aspx

 1 <% @ Register TagPrefix = " uc1 "  TagName = " ThreeLevelDropdownList "  Src = " http://www.cnblogs.com/controls/ThreeLevelDropdownList.ascx "   %>
 2 <% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " JobList.aspx.cs "  Inherits = " Manager_Job_JobList "    %>
 3
 4 <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 5
 6 < html xmlns = " http://www.w3.org/1999/xhtml "   >
 7 < head runat = " server " >
 8      < title > 无标题页 </ title >   
 9 </ head >
10 < body >
11      < form id = " form1 "  runat = " server " >
12      < div >
13       所在地区 < uc1:ThreeLevelDropdownList id = " threeLevelDDL1 "  runat = " server "    ></ uc1:ThreeLevelDropdownList >< br  />
14       工作类型 < uc1:ThreeLevelDropdownList id = " threeLevelDDL2 "  runat = " server "    ></ uc1:ThreeLevelDropdownList >< br  />< br  />
15          < asp:Button ID = " Button1 "  runat = " server "  Text = " Button "   />
16      </ div >
17      </ form >
18 </ body >
19 </ html >

调用实例cs

附加说明
AjaxPro的Web.config的配置

题外话

AjaxPro下的Ajax框架,解决了之前在Ajax.dll中常出现的注册应用ajax的页面类后,老报错该注册类“未定义”的错!

你可能感兴趣的:(用户)