ATLAS入门篇之CascadingDropDown控件编程
![]() |
图1:使用“ASP.NET AJAX-Enabled Web Site”模板快速创建ATLAS程序 |
![]() |
图2:ASP.NET AJAX控件工具箱 |
![]() |
图3:在工程中添加“SQL数据库”模板 |
![]() |
图4:示例数据库中的两个表格—Cars和CarModels结构定义 |
![]() |
图5:使用TableAdapter配置向导配置数据集 |
Select CarId,CarName from Cars |
SELECT ModelId,CarId,ModelName FROM CarModels WHERE (CarId = @carId) |
![]() |
图6:在工程中添加“Web服务”模板 |
using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.Collections.Generic; using AjaxControlToolkit; using System.Data; using System.Data.SqlClient; |
[WebService(Namespace= "[url]http://tempuri.org/[/url]")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class CarsService : System.Web.Services.WebService { |
[WebMethod] public CascadingDropDownNameValue[] GetModelsByCarId(string knownCategoryValues, string category) { |
//根据“:”字符使用“;”分隔符分离knownCategoryValues //相应于索引1处的字符串是从dropdownlist中选择的CarId string[] _categoryValues = knownCategoryValues.Split(':', ';'); |
int _carID = Convert.ToInt32(_categoryValues[1]);
//创建CascadingDropDownNameValue的一个列表以存储汽车模型数据 List_carModels=new List(); |
//创建一个CarModels TableAdapter的实例 dsCarModelsTableAdapters.CarModelsTableAdapter _carModelAdapter = new dsCarModelsTableAdapters.CarModelsTableAdapter(); //对于每一个由方法GetModelsByCarId返回的DataTable中的第一个DataRow //,把modelname和modelid数据添加到List foreach (DataRow _row in _carModelAdapter.GetModelsByCarId(_carID)) { _carModels.Add(new CascadingDropDownNameValue(_row["ModelName"].ToString(), _row["ModelId"].ToString())); } |
下面展示了本文中所用唯一的Web方法的完整定义。
// Web方法—根据一个给定的carId取得所有汽车模型信息 //输入参数—层叠式下拉列表框提供的knownCategoryValues //输出参数—CascadingDropDownNameValue数组 [WebMethod] public CascadingDropDownNameValue[] GetModelsByCarId(string knownCategoryValues, string category) { //根据“:”字符使用“;”分隔符分离knownCategoryValues //对于第一个dropdownlist来说,该值为“undefined: id of the // dropdownelement” //相应于索引1处的字符串是从dropdownlist中选择的CarId string[] _categoryValues = knownCategoryValues.Split(':', ';'); //转换string[]中索引1对应元素以便得到CarId int _carID = Convert.ToInt32(_categoryValues[1]); // 创建一个CascadingDropDownNameValue的List结构以便存储汽车模型数据 List _carModels = new List(); //创建一个CarModels TableAdapter的实例 dsCarModelsTableAdapters.CarModelsTableAdapter _carModelAdapter = new dsCarModelsTableAdapters.CarModelsTableAdapter(); //对于每一个由方法GetModelsByCarId返回的DataTable中的第一个datarow //,把modelname和modelid数据添加到List foreach (DataRow _row in _carModelAdapter.GetModelsByCarId(_carID)) { _carModels.Add(new CascadingDropDownNameValue(_row["ModelName"].ToString(), _row["ModelId"].ToString())); } //转换成数组并返回相应的值 return _carModels.ToArray(); } |
< Width="179px" Height="31px" runat="server"> DataTextField="CarName" DataValueField="CarId" DataSourceID="ods_Cars"> Width="181px"> |
< runat="server"> OldValuesParameterFormatString="original_{0}" SelectMethod="GetAllCars" TypeName="dsCarsTableAdapters.CarsTableAdapter"> |
属性 | 内容 | 含义 |
Category | Cars | 相应于knowCategoryValues的分类 |
LoadingText | 请等待…… | 当dropdownlist控件正在加载时显示的消息 |
ParentControlID | ddlCars | 从中选择CategoryId的DropDownList |
PromptText | 请选择一个模型 | 在没有选择内容时的提示文本 |
TargetControlID | ddlCarModels | CascadingDropDownNameValue应该加载到的DropDownList控件 |
ServicePath | CarsService.asmx | 指向web服务的路径 |
ServiceMethod | GetModelsByCarId | 被调用以取得相应值的Web方法 |
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> |
<> ID="CascadingDropDown1" runat="server" Category="Cars" ParentControlID="ddlCars" TargetControlID="ddlCarModels" ServicePath="CarsService.asmx" ServiceMethod="GetModelsByCarId" LoadingText="请等待……" PromptText="请选择一个模型"> |
![]() |
图7:示例网站运行结果 |
相关文章:

ASP.NET2.0 永恒密码之戒【月儿原创】
ASP.NET2.0 永恒密码之戒 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.8 1.我们经常有这样的情形: 就是用户注册时由于某个信息填写错误要重新填写。但是这个过程经过了服务器PostBack。所以密码…

GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?
整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)上周,微软、GitHub、OpenAI 三方联手推出的 AI 代码生成神器 GitHub Copilot 一经官宣便引起巨大关注:试问哪个开发者不想要这么一位“虚拟程序员”来解放自己的双手?…

LAMP的安装及Xcache的配置
LAMP是LinuxApacheMySQLPHP的简称,意指以Linux作为服务器的操作系统,以Apache的HTTPD作为Web服务器,以PHP作为动态网页的解释器,以MySQL作为后端数据库管理系统,由此而搭建起来的一套Web服务器系统。为方便起见&#x…

Windows Server 2003 AD升级到Windows Server 2008 AD的方法及详细步骤
前言: Windows Server 2008 是现在企业比较流行的服务器操作系统,安全性高,配置灵活、方便,集成了Hyper-V虚拟化功能,能够充分发挥硬件的性能。Windows Server 2008改写了底层的网络传输代码,理论上&#x…

ASP.NET2.0 ReportingServices使用详解
ASP.NET2.0 ReportingServices使用详解 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.9本文先做个简单介绍,更多关于ReportingServices的文章见后续。 1.打开BIDS,这是报表开发工具 2.新建项目 3.选择…

输出程序运行的时间(精确到微秒)
对于要求性能的代码,输出程序运行的时间还是很有必要的,而且需要较高的精确度,下面这个代码段就实现了此功能 注意:只限于Linux下使用,因为<sys/time.h>的缘故 1 #include <sys/time.h>2 #include <ios…

售前比售后机器人控制逻辑更复杂,仅凭大规模数据后发优势难赶超!
实现人与机器的自然交互,一直以来都是全世界人类的共同愿望,无数科学家倾尽毕生精力致力于实现这个目标。语言,作为人与外界交流最有效的工具,成为机器智能的重点研究对象,而对话型机器人则成为实现人机交互最早的突破…

JAVAEclipse:could not find the main class,program will exit!
JAVAEclipse:could not find the main class,program will exit! 遇到这个错误主要是当前的工程的jdk与eclipse的版本配置不匹配造成的,修改方法如下: 在当前工程点右键选择Properties->Java Compiler->选中Enable project specific settings->…

ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 【月儿原创】
ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.9 FCKeditor是目前最好的html文本编辑器,如果还不明白的话看了下图就知道了效果图: 那么为什么说是FC…

转:strcat与strcpy与strcmp与strlen
转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,char *src);用法:#include <string.h>功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的\0)并添加\0。说明…

2021 EdgeX中国挑战赛盛大开幕,英特尔赋能开发者,助力创新方案落地
2021年7月12日,北京中关村论坛隆重举行。论坛上,英特尔研究院副总裁、英特尔中国研究院院长宋继强博士,北京市科委、中关村管委会高科技产业促进中心主任徐剑发表致辞并联合Linux基金会、VMware威睿等单位代表共同宣布2021 EdgeX中国挑战赛开…

构建安全的 ASP.NET 应用程序
最近开发的系统因为用到Asp.net的安全性方面的东西,所以拼命看MSDN,E文看着有点慢,还好现在在MSDN 中文网站中很多文章都有了翻译,所以今天索性在MSDN中文网站上找了一把,还真有。有感兴趣的朋友可以看看,不…

.NET2.0隐形的翅膀,正则表达式搜魂者【月儿原创】
.NET2.0隐形的翅膀,正则表达式搜魂者 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.14 本文实现了:只能输入1个数字只能输入n个数字只能输入至少n个数字只能输入m到n个数字只能输入数…

连华为都在研究的计算机视觉,到底有多牛?
去年,华为在CCF-GAIR 大会上介绍了在人工智能领域的愿景,华为为了实现这个战略目标,从中梳理出深耕基础研究、打造全栈方案、投资开放生态和人才培养、解决方案增强、内部效率提升五大方向,以此打造无所不及的AI,构建万…

JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片...
1, 点击弹出图片 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"><head><meta ht…

Nginx+Tomcat实现反向代理与动静分离
1. 什么是动静分离 所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理。 2. 为什么做动静分离 Nginx处理静态…

白话经典算法系列之七 堆与堆排序
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大…

.NET2.0抓取网页全部链接【月儿原创】
.NET2.0抓取网页全部链接 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.18 该方法经过对各大门户网站测试结果是抓取率100%! 效果图 后台代码: using System;using System.Data;…

腾讯会议又一黑科技,屏蔽超过 200 种会议噪声是如何做到的?
作者 | 伍杏玲出品 | AI 科技大本营(ID:rgznai100)远程会议已成为我们常规的工作沟通方式,在线交流打破时间、空间的限制,给予我们便利之际,也屡遭尴尬:忘记静音,一边听会一边敲键盘,…

zabbix之日志文件监控
一、日志item介绍 下面介绍zabbix另一个“重量级”的功能——日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。 在配置Item的时候,Type选择Zabbix agent (active)ÿ…

深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来
作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton译者|香槟超新星出品|AI科技大本营(ID:rgznai100)人工神经网络领域的研究是基于对人类智能的观察而来:人类智能从高度并行的网络中产生,这些网络由结构相对简单的非线性神经元组成,通过调整连接…

ASP.NET2.0图片格式转换【月儿原创】
ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20 说明:本文实现了图片格式随意转换(下拉框选择);点击FileUpload立即显示图片…
org.apache.hadoop.fs-ChecksumException
当ChecksumFileSystem出现问题时抛出 1 package org.apache.hadoop.fs;2 3 import java.io.IOException;4 5 /** Thrown for checksum errors. */6 public class ChecksumException extends IOException {7 private long pos;8 public ChecksumException(String descriptio…

Linux下显示硬盘空间的两个命令
1.df -h ,用于显示目前所有文件系统的可用空间及使用情况,示例如下: [rootmsg45 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_msg45-lv_root 50G 15G 33G 31% / tmpfs …

C#对Microsoft.VisualBasic My对象兰台妙选【月儿原创】
C#对Microsoft.VisualBasic My对象兰台妙选 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.24 1.添加引用 2.引用Microsoft.VisualBasic 命名空间 3.所有的My对象应用皆出自以下类库,本文仅抛砖…

AIoT的发展路上,英特尔如何通过边缘计算掀起产业变革
你知道吗?到明年,仅我国的物联网连接规模将达到70亿,而全世界的人口也不过刚刚达到这个数字。物联网的爆发意味着什么?相信每个人都有着不同的答案,对于我国的14亿人口而言,即将全面到来的物联网红利不仅能…

Xbox One 游戏欣赏: Xbox Fitness 太极拳游戏
早就听说Xbox One中带有太极拳,这是我一直想练的,终于找到“死人定制”的师傅了。因为看书很难练,找不到联系场所,要么就要花价格不菲的学费。Xbox 360中的型可塑2012游戏中,包含了一个游戏章节就是Taiji,但…

Android美工坊:Selector选择器的使用
Android selector选择器可以让你切换自定义的背景风格,比如button、ListView、或者布局点击时候的背景切换等,都需要用到它 背景可以是自定义到颜色,或者图片资源 首先需要在你的res目录下创建drawable文件夹,然后在里面创建一个s…

C#中判断空字符串的3种方法性能分析【月儿原创】
C#中判断空字符串的3种方法性能分析 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.28 3种方法分别是:string a"";1.if(a"")2.if(aString.Empty)3.if(a.Length0) 3种方法都是…

微软职位内部推荐-SDEII
微软近期Open的职位:Title: Software Development Engineer 2Group: Bing Client, Search Technology Center Asia, BingWork Location: Beijing/Suzhou, China Group OverviewSearch Technology Center Asia (STCA)STCA was founded in year 2005 and is now starting the sec…