Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Asp.net Ajax CascadingDropDown 控件的用法

Asp.net Ajax CascadingDropDown 控件的用法

作者头像
拓荒者IT
发布于 2019-09-25 12:42:15
发布于 2019-09-25 12:42:15
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

  CascadingDropDown 控件提供了级联下拉列表显示的功能。在一些特定的业务环境下,我们希望下拉列表会根据页面中的另外一个控件(TextBox、CheckBox或DropDownList)的值而显示不同的列表项,最常见的就是在进行区域选择时,当选择了省级为“北京”时,我们希望在DropDownList中的列表项为“朝阳”、“海淀”、“东城”、“西城”等属于北京市的下级区域。如上所说,对于存在包含关系的下拉列表选择中,CascadingDropDown控件将会非常有用。

  要是用CascadingDropDown 控件,首要现在页面上放置一个DropDownList控件,并将CascadingDropDown控件的TargetControlID设置为DropDownList控件。下面是CascadingDropDown的使用代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ajaxToolkit:CascadingDropDown ID="CDD1" runat="server"
    TargetControlID="DropDownList2"
    Category="Model"
    PromptText="Please select a model"
    LoadingText="[Loading models...]"
    ServicePath="CarsService.asmx"
    ServiceMethod="GetDropDownContents"
    ParentControlID="DropDownList1"
    SelectedValue="SomeValue"/>
  • TargetControlID:目标控件的ID
  • Category:所属分类名称,在下级列表中,会作为参数的一部分传递给Webservice的方法,用来确定需要返回给下级列表什么样的数据。
  • PromptText:在没有选择时显示的内容
  • LoadingText:在进行数据加载时显示的内容
  • ServicePath:提供数据的WebService的路径
  • ServiceMethod:WebService的方法
  • ParentControlID:上一级(父级)列表的ID
  • SelectedValue:默认选中的数据

我们来添加一个示例,首先在页面放置三个DropDownList,分别用来选择省、市、区,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<table>
                <tr>
                    <td></td>
                    <td>
                        <asp:DropDownList ID="DropDownList1" runat="server" Width="170"/>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <asp:DropDownList ID="DropDownList2" runat="server" Width="170"/>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <asp:DropDownList ID="DropDownList3" runat="server" Width="170"/>
                    </td>
                </tr>
            </table>

然后,为这三个DropDownList分别添加CascadingDropDown 控件,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" TargetControlID="DropDownList1"
                Category="省" PromptText="请选择一个省" LoadingText="正在加载省……" ServicePath="/WebService/CascadingDropDownService.asmx"
                ServiceMethod="GetDropDownContents"/>
            <ajaxToolkit:CascadingDropDown ID="CascadingDropDown2" runat="server" TargetControlID="DropDownList2"
                Category="市" PromptText="请选择一个市" LoadingText="正在加载市……" ServicePath="/WebService/CascadingDropDownService.asmx"
                ServiceMethod="GetDropDownContents" ParentControlID="DropDownList1"/>
            <ajaxToolkit:CascadingDropDown ID="CascadingDropDown3" runat="server" TargetControlID="DropDownList3"
                Category="区" PromptText="请选择一个区" LoadingText="正在加载区……" ServicePath="/WebService/CascadingDropDownService.asmx"
                ServiceMethod="GetDropDownContents" ParentControlID="DropDownList2"/>

  可以看出,这段代码三个CascadingDropDown控件中的ServicePath和ServiceMethod是相同的,我们只需要在方法GetDropDownContents中添加适当的分支处理就可以了,CascadingDropDownService的GetDropDownContents方法的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category)
        {
            CascadingDropDownNameValue[] result =null;
            StringDictionary knownCategoryValuesDictionary = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
            switch (category)
            {
                case"省":
                    {
                        result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("河南", "hn"), new CascadingDropDownNameValue("山西", "sx")};
                    }
                    break;
                case"市":
                    {
                        switch (knownCategoryValuesDictionary["省"])
                        {
                            case"hn":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("洛阳", "ly"), new CascadingDropDownNameValue("南阳", "ny") };
                                }
                                break;
                            case"sx":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("太原", "ty"), new CascadingDropDownNameValue("吕梁", "ll") };
                                }
                                break;
                        }
                    }
                    break;
                case"区":
                    {
                        switch (knownCategoryValuesDictionary["市"])
                        {
                            case"ly":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("西工区", "xg"), new CascadingDropDownNameValue("涧西区", "jx") };
                                }
                                break;
                            case"ny":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("卧龙区", "wl")};
                                }
                                break;
                            case"ty":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("迎泽区", "yz"), new CascadingDropDownNameValue("杏花岭区", "xhl") };
                                }
                                break;
                            case"ll":
                                {
                                    result =new CascadingDropDownNameValue[] { new CascadingDropDownNameValue("离石区", "ls")};
                                }
                                break;
                        }
                    }
                    break;
            }

            return result;
        }

这个WebService要允许通过JS调用,所以要在Service的头部添加[System.Web.Script.Services.ScriptService],这样就可以了。

上面的示例只是一个简单的测试例子,更复杂的应用需要访问数据库、处理复杂业务等,但控件本身的用法没有太大差别,希望你能够举一反三啊!

希望对你有所帮助,谢谢关注!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Asp.net Ajax AutoComplete 控件的用法
AutoComplete控件是微软提供的ASP.NET AJAX Control Toolkit 中的一个控件,是用来实现类似百度搜索的自动完成效果。
拓荒者IT
2019/09/25
2.7K0
在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的ActiveServerPages(ASP运维
Java架构师必看
2020/10/15
2.6K0
asp.net中DropDownList控件各种属性研究汇总
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
9600
ASP.NET常用的一些服务器控件
文本框控件TextBox, TextMode:值SingleLine表示单行文本,MultiLine表示多行文本,等等。 textbox.jpg 下拉列表控件DropDownList,单项按钮
热心的社会主义接班人
2018/04/27
1.9K0
ASP.NET常用的一些服务器控件
AJAX之四 Ajax控件工具集
在上一章中,我们学习了Asp.Net AJAX的核心组件UpdatePanel、ScriptManager等。最后我们通过使用AutoComplete控件,用很少的代码就实现了自动完成功能。我们发现在Asp.Net的AJAX解决方案中,通过控件方式极大地提高了传统了AJAX效果的开发效率。
张哥编程
2024/12/17
3210
AJAX之四 Ajax控件工具集
ASP.NET 使用Ajax
之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的ScriptManager。
全栈程序员站长
2022/09/06
2.8K0
ASP.NET 使用Ajax
Asp.net Ajax Accordion控件的用法
Accordion,翻译过来是“手风琴、可折叠”的意思,微软Asp.net ajax提供了Accordion可折叠面板控件,方便用户在系统菜单、信息展示中使用,用户体验是相当的好啊。
拓荒者IT
2019/09/26
1.7K0
ASP.NET中WebForm组件CheckBoxList编程
CheckBox选择组件是一个程序中都经常的组件。在程序设计中使用到该组件,一般都不会只使用到一个,往往是以多个此类组件的形式出现的。在ASP.NET页面中如果要使用到多个CheckBox组件,除了添加多个CheckBox组件在页面中之外,还有一种比较方便的方法,就是使用CheckBoxList组件。CheckBoxList组件是由一组的CheckBox组件组成的,在此组件中CheckBox是做为条目的形式出现的,并且对每个在CheckBoxList组件中的CheckBox都有一个索引号,这样在程序中就更容易来处理了。
Java架构师必看
2021/03/22
1.7K0
ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行走于天下。但这样真的就可以走一辈子吗?实际上,ASP.Net经常被喷的诟病就在于WebForm以及只会拖控件的ASP.Net程序员,往往大型互联网系统也没有采用WebForm的模式进行开发。但是,WebForm并不是一无是处,而是我们没有用好,还有很多东西我们知其然不知其所以然,现在我们就来对这些平时所不注意但又十分关键的东西一探究竟。
Edison Zhou
2018/08/20
3.1K0
ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
ASP.NET AJAX(10)__Authentication ServiceAuthentication ServiceAuthentication Service属性Authentication
在通常情况下,如果使用AJAX方式调用WebService,则可能被恶意用户利用,造成性能以及安全性的问题,所以我们需要使用一些验证方式来保护WebService,最常见方式就是Forms Authentication,这也是一种用法很简单的方式 一个使用FormsAuthentication保护WebService调用的示例 首先创建一个名为ProtectedService的WebService,代码如下 using System; using System.Collections.Generic; us
小白哥哥
2018/03/07
1.9K0
ASP.NET验证控件学习总结与正则表达式学习入门
在做Web应用程序的时候,因为用户有可能输入各式各样的信息,经常需要大量的数据验证,如果交给服务器去验证的话,无疑会增加服务器的压力,而且也容易造成程序的异常。甚至导致网站出现一些安全问题。因此我们在将这些信息保存到网站的数据库之前,要对这些用户所输入的信息进行数据的合法性校验,以便后面的程序可以安全顺利的执行。
阳光岛主
2019/02/19
2.8K0
ASP.NET2.0图片格式转换【月儿原创】
主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20
Java架构师必看
2021/03/22
1.5K0
ASP.NET AJAX(4)__客户端访问WebService服务器端释放WebService方法客户端访问WebService客户端访问PageMethod错误处理复杂数据类型使用基础客户端代理的
服务器端释放WebService方法 编写一个普通的WebService 为WebService类添加自定义的属性标记__ScriptServiceAttribute 释放WebService方法                   __访问级别为Public                   __使用WebServiceAttribute进行标记 为页面中的ScriptManager引入asmx文件 客户端访问WebService [Namespaces.]ClassName.MethodName 依次
小白哥哥
2018/03/07
5K0
ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
开篇:经历了上一篇《aspx与服务器控件探秘》后,我们了解了aspx和服务器控件背后的故事。这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下。然后,再对曾经很流行的ASP.Net AJAX方案中的利器—UpdatePanel这个神奇的区域一探究竟。
Edison Zhou
2018/08/20
1.9K0
ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
DropDownList 详解「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。DropDownList 控件用于创建下拉列表。DropDownList 控件中的每个可选项都是由 ListItem 元素定义的! 提示:该控件支持数据绑定! DropDownList 控件是一个下拉式的选单,功能和 RadioButtonList Web控件很类似,提供用户在一群选项中选择一个;不过RadioButtonList Web控件适合使用在较少量的选项群组项目,而DropDownList Web 控件则适合用来管理大量的选项群组项目。
全栈程序员站长
2022/09/09
3.1K0
C#进阶-ASP.NET常用控件总结
ASP.NET Panel 控件用于将一组控件组织在一起,并可以通过控件的 Visible 属性来控制它们的可见性。
Damon小智
2024/03/15
4330
C#进阶-ASP.NET常用控件总结
ASP.NET AJAX(11)__ScriptManagerUpdatePanel的支持成员功能控制成员脚本控件支持成员ScriptMode和ScriptPathLoadScriptsBeforeU
ScriptManager的作用,这个不言而喻,它是整个的ASP.NET AJAX的核心 UpdatePanel的支持成员 static void RegisterArrayDeclaration static void RegisterClientScriptBlock static void RegisterScriptInclude static void RegisterClientScriptResource static void RegisterExpandoAttribute static
小白哥哥
2018/03/07
9570
ASP.NET Ajax AsyncFileUpload 控件用法
AsyncFileUpload控件,就是用来对文件进行异步上传的,示例看这里:http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx。有需要异步上传文件的同学要看这里了,具体用法如下:
拓荒者IT
2019/09/26
2.2K0
Stimulsoft.Report.net报表简单实用
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data; 8 using Stimulsoft.Report; 9 using Stimulsoft.Report.Components;
冰封一夏
2019/09/11
9930
asp.net 可选可输入的dropdownlist
我们都知道,dropdownlist控件是无法直接输入文本的,只能选择下拉菜单中的选项。为了方便使用,我们可以用多种方法来实现既可选择又可输入的dropdownlist的效果。主要思路有.通过js代码来实现,或是在后台代码中实现。但是今天主要介绍通过html中的select和input控件相结合的的来实现。
全栈程序员站长
2022/08/09
1.1K0
asp.net 可选可输入的dropdownlist
推荐阅读
相关推荐
Asp.net Ajax AutoComplete 控件的用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验