



















因为最近做的项目需要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的页面类后,老报错该注册类“未定义”的错!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。