溶入海洋中的雨滴
将自己溶入大海,化作一阵清风
因为最近做的项目需要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的页面类后,老报错该注册类“未定义”的错!

posted on 2008-07-04 01:08  溶入海洋中的雨滴  阅读(1192)  评论(2编辑  收藏  举报