`
lovnet
  • 浏览: 6878649 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

altas(ajax)控件(六):CascadingDropDown 联动选择的下拉框

阅读更多
CascadingDropDown我个人感觉有几个规则:
1. 需要配合xml
2. 需要配合两个方法:CascadingDropDown.ParseKnownCategoryValuesString和CascadingDropDown.QuerySimpleCascadingDropDownDocument
3. 似乎需要配合WebService
希望有人指出错误之处。
联动选择的下拉框最多的应用我想应该是地区的选择吧,估计每个web程序员都碰到过,下面来看atlas的解决方案:
前端代码Default.aspx
<formid="form1"runat="server">
<asp:ScriptManagerID="ScriptManager1"runat="server"/>
<divclass="demoarea">
<divclass="demoheading">CascadingDropDown联动选择的下拉框</div>
<table>
<tr>
<td>国家</td>
<td><asp:DropDownListID="DropDownList1"runat="server"Width="170"/></td>
</tr>
<tr>
<td>省份</td>
<td><asp:DropDownListID="DropDownList2"runat="server"Width="170"/></td>
</tr>
<tr>
<td>城市</td>
<td><asp:DropDownListID="DropDownList3"runat="server"Width="170"AutoPostBack="true"
OnSelectedIndexChanged
="DropDownList3_SelectedIndexChanged"/></td>
</tr>
</table>

<cc1:CascadingDropDownID="CascadingDropDown1"runat="server"TargetControlID="DropDownList1"
Category
="Make"PromptText="Pleaseselectamake"LoadingText="[Loadingmakes...]"
ServicePath
="CarsService.asmx"ServiceMethod="GetDropDownContents"/>
<cc1:CascadingDropDownID="CascadingDropDown2"runat="server"TargetControlID="DropDownList2"
Category
="Model"PromptText="Pleaseselectamodel"LoadingText="[Loadingmodels...]"
ServiceMethod
="GetDropDownContentsPageMethod"ParentControlID="DropDownList1"/>
<cc1:CascadingDropDownID="CascadingDropDown3"runat="server"TargetControlID="DropDownList3"
Category
="Color"PromptText="Pleaseselectacolor"LoadingText="[Loadingcolors...]"
ServicePath
="CarsService.asmx"ServiceMethod="GetDropDownContents"
ParentControlID
="DropDownList2"/>

<asp:UpdatePanelID="UpdatePanel1"runat="server"UpdateMode="Conditional"RenderMode="inline">
<ContentTemplate>
<asp:LabelID="Label1"runat="server"Text="[您还没有选择]"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTriggerControlID="DropDownList3"EventName="SelectedIndexChanged"/>
</Triggers>
</asp:UpdatePanel>
</div>
</form>
Default.aspx.cs
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.Services;
usingAjaxControlToolkit;

publicpartialclass_Default:System.Web.UI.Page
...{
protectedvoidPage_Load(objectsender,EventArgse)
...{

}

protectedvoidTextBox1_TextChanged(objectsender,EventArgse)
...{

}

protectedvoidButton1_Click(objectsender,EventArgse)
...{

}

protectedvoidDropDownList3_SelectedIndexChanged(objectsender,EventArgse)
...{
//Getselectedvalues
stringmake=DropDownList1.SelectedItem.Text;
stringmodel=DropDownList2.SelectedItem.Text;
stringcolor=DropDownList3.SelectedItem.Text;

//Outputresultstringbasedonwhichvaluesarespecified
if(string.IsNullOrEmpty(make))
...{
Label1.Text
="Pleaseselectamake.";
}

elseif(string.IsNullOrEmpty(model))
...{
Label1.Text
="Pleaseselectamodel.";
}

elseif(string.IsNullOrEmpty(color))
...{
Label1.Text
="Pleaseselectacolor.";
}

else
...{
Label1.Text
=string.Format("您选择的地区是{0}{1}{2}。",color,make,model);
}

}


[WebMethod]
[System.Web.Script.Services.ScriptMethod]
publicstaticCascadingDropDownNameValue[]GetDropDownContentsPageMethod(stringknownCategoryValues,stringcategory)
...{
returnnewCarsService().GetDropDownContents(knownCategoryValues,category);
}

}


数据:
<?xmlversion="1.0"encoding="utf-8"?>
<CarsService>
<makename="中国">
<modelname="浙江">
<colorname="杭州"/>
<colorname="宁波"/>
<colorname="金华"/>
</model>
<modelname="江苏">
<colorname="南京"/>
<colorname="苏州"/>
</model>
<modelname="福建">
<colorname="福州"/>
<colorname="厦门"/>
</model>
</make>
<makename="美国">
<modelname="A4">
<colorname="Azure"/>
<colorname="LightAzure"/>
<colorname="DarkAzure"/>
</model>
<modelname="S4"value="S4(value)">
<colorname="Silver"value="Silver(value)"/>
<colorname="Metallic"value="Metallic(value)"/>
</model>
<modelname="A6"value="A6(value)">
<colorname="Cyan"value="Cyan(value)"/>
</model>
</make>
<makename="韩国">
<modelname="3series"value="3series(value)">
<colorname="Blue"value="Blue(value)"/>
<colorname="SkyBlue"value="SkyBlue(value)"/>
<colorname="RacingBlue"value="RacingBlue(value)"/>
</model>
<modelname="5series"value="5series(value)">
<colorname="Yellow"value="Yellow(value)"/>
<colorname="Banana"value="Banana(value)"/>
</model>
<modelname="7series"value="7series(value)">
<colorname="Brown"value="Brown(value)"/>
</model>
</make>
</CarsService>

WebService代码:
//(c)CopyrightMicrosoftCorporation.
//ThissourceissubjecttotheMicrosoftPermissiveLicense.
//Seehttp://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
//Allotherrightsreserved.


usingSystem;
usingSystem.Collections.Specialized;
usingSystem.Web;
usingSystem.Web.Services;
usingSystem.Xml;

/**////<summary>
///HelperwebserviceforCascadingDropDownsample
///</summary>

[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo
=WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
publicclassCarsService:WebService
...{
//Membervariables
privatestaticXmlDocument_document;
privatestaticobject_lock=newobject();

//wemakethesepublicstaticsjustsowecancallthemfromexternallyforthe
//pagemethodcall
publicstaticXmlDocumentDocument
...{
get
...{
lock(_lock)
...{
if(_document==null)
...{
//ReadXMLdatafromdisk
http:
分享到:
评论

相关推荐

    altas非常有用的资源

    9. **CascadingDropDownDemo.rar**:CascadingDropDown控件允许一个下拉列表的值影响另一个下拉列表的选项,常用于级联选择。这个示例将展示如何设置和使用这种级联关系。 通过这些示例,开发者可以深入理解Altas库...

    ASP.NET AJAX Altas

    ### ASP.NET AJAX Altas:掌握局部更新网页设计的利器 #### 一、ASP.NET AJAX概览 ##### 1.1 AJAX非同步技术简介 - **定义**:AJAX(Asynchronous JavaScript and XML)是一种用于创建更快响应的Web应用程序的技术...

    Altas-Notas:我基于Firebase服务的Spotify版本

    :musical_note: Altas-Notas 我基于Firebase服务的Spotify版本 :joystick: 安装及使用方法从Zip导出项目并导入完整文件夹 :laptop: 进步▰▱▱▱▱▱▱▱▱▱10% :camera: 屏幕截图目前没有照片

    Altas 学习指南

    2. **核心组件介绍**:介绍Altas中的主要组件,如Ajax控件、数据绑定和异步处理机制。 3. **实例教程**:通过实践项目展示如何使用Altas创建一个完整的应用程序。 4. **性能优化**:讨论如何利用Altas的特性进行性能...

    Ajax三级联动和无刷新分页源码

    自己写的第2个 ajax例子 3联动+无刷新分页(no altas) 无刷新分页 有点bug 只需要把 js/xmlhttp.js 里面的 的标签 里的属性 +一个 单引号 就行了 App_data下的my51aspx.mdf为Sql数据库文件,附加即可 数据库操作...

    Altas学习指南

    根据给定的文件信息,以下是从...通过以上知识点的梳理,我们可以看到ATLAS框架不仅提供了丰富的控件和工具来简化AJAX应用的开发,还涵盖了数据处理、控件定制、调试技巧等多个方面,为开发者提供了全面的技术支持。

    Atlas基础教程——ASP.NET Ajax快速开发 code

    1. **Ajax技术**:Ajax(Asynchronous JavaScript and XML)是一种创建交互式网页应用的技术,通过在后台与服务器异步交换少量数据,使网页实现局部刷新,提高了用户体验。 2. **ASP.NET框架**:ASP.NET是微软提供...

    Altas网上聊天系统

    本文介绍了Ajax的基本工作原理,并实现了网上聊天系统的基本功能

    unity3d ngui 日历控件

    日历控件通常包括月份和年份的选择,以及展示特定日期的选项。 在描述中提到的“ngui的altas丢失了”,Atlas在NGUI中是一个重要的概念,它是一种资源打包技术,将多个纹理合并到一张大图上,以减少渲染时的Draw ...

    altas-examples:Hashicorp Atlas 教程示例代码

    通过示例,我们可以了解如何定义部署策略,包括选择目标环境(如AWS、Azure或自定义环境),设置环境变量,以及如何在不同环境间迁移代码。 6. **监控与日志**:Atlas还提供了监控和日志功能,帮助开发者追踪应用的...

    Spine中Altas资源分割

    总的来说,"Spine中Altas资源分割"是一个关键的优化步骤,特别是对于那些需要高效渲染和动态效果的游戏。通过改良的Python工具,开发者可以更好地管理Spine资源,确保旋转精灵的正确显示,这对于Cocos2dx或其他支持...

    Ajax与Atlas开发系列课程

    第六和第七课,"服务器端的AJAX应用(一)和(二)",深入到了服务器端的Ajax实现,可能涉及到不同服务器平台如ASP.NET下的Ajax集成,以及如何处理异步请求和返回的数据。 第八课,"设计高质量的Ajax应用",讲述了...

    altas网上聊天系统

    altas网上聊天系统--本文介绍了ajax的基本工作原理,并实现了网上聊天系统的功能!

    AjaxControlToolkit

    AjaxControlToolkit则是建立在这个库之上的一个扩展集合,提供了更多的UI控件和功能,比如AutoCompleteExtender、CalendarExtender、ConfirmButtonExtender等,这些控件简化了在ASP.NET中实现AJAX功能的过程。...

    Silvaco Atlas User's Manual Silvaco Altas用户手册(英文版)

    知识点六:ATHENA Simulator ATHENA Simulator 是 Silvaco 公司的一款模拟器件软件,能够对半导体器件进行模拟和设计。该软件可以模拟半导体器件的电气特性、热特性和光学特性等多方面的性能,并提供了多种模拟算法...

    拆分plist altas的脚本工具

    在这个场景中,Python的灵活性和强大的图像处理库使其成为拆分`plist`和`atlas`的理想选择。 总的来说,这两个Python脚本构成了一个工具链,用于拆分和还原由`plist`和`atlas`打包的图像资源。通过学习和理解这些...

Global site tag (gtag.js) - Google Analytics