博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net中使用下拉菜单的级联问题
阅读量:5104 次
发布时间:2019-06-13

本文共 2656 字,大约阅读时间需要 8 分钟。

页面文件

View Code
城市1
城市2

程序文件

View Code
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)        {
if (DropDownList1.SelectedItem.Text == "城市1") { DropDownList2.Items.Clear(); DropDownList2.Items.Add("区1"); DropDownList2.Items.Add("区2"); } else if (DropDownList1.SelectedItem.Text == "城市2") {
DropDownList2.Items.Clear(); DropDownList2.Items.Add("区3"); DropDownList2.Items.Add("区4"); } }

 注意第一个dropdownlist的AutoPostBack="True"一定要设置 其实如果这种省市区联动的一般不用数据库,直接在js里面写,或者找现成的有很多,

放数据库里浪费服务器资源,而且刷新效果不好。
提供一个比较好的省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)
示例:

 

附加一个使用数据库数据的例子:

前台控件代码:

    

后台代码段:

protected string SqlModuleList = ""; protected string SqlTypeList = "";     SqlHelper sqlhelper = new SqlHelper(); protected void Page_Load(object sender, EventArgs e)     {
if (!IsPostBack) {
ModuleList(); //首次加载模块的下拉数据 } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) {
if (DropDownList1.SelectedItem.Text != "") {
SqlTypeList = "select TypeID,TypeName from KY_SendMessage_Type as T,KY_SendMessage_Module as M where T.ModuleID=M.ModuleID and T.ModuleID=" + DropDownList1.SelectedValue + ""; DataSet ds = sqlhelper.readDataSet(SqlTypeList); DataTable dt = ds.Tables[0]; if (dt.Rows.Count != 0)//判断模块下面是否有子分类 {
Label2.Visible = true; DropDownList2.Visible = true; DropDownList2.Items.Clear(); } else {
Label2.Visible = false; DropDownList2.Visible = false; } DropDownList2.DataSource = dt; DropDownList2.DataValueField = "TypeID"; DropDownList2.DataTextField = "TypeName"; DropDownList2.DataBind(); } } protected void ModuleList() {
SqlModuleList = "select * from KY_SendMessage_Module as M"; DataSet ds = sqlhelper.readDataSet(SqlModuleList); DataTable dt = ds.Tables[0]; DropDownList1.DataSource = dt; DropDownList1.DataValueField = "ModuleID"; DropDownList1.DataTextField = "ModuleName"; DropDownList1.DataBind(); }

部分效果图:

                         初始加载图

       点击选项加载子下拉图

转载于:https://www.cnblogs.com/jianglan/archive/2012/02/19/2358492.html

你可能感兴趣的文章
C# 串口操作系列(3) -- 协议篇,二进制协议数据解析(转)
查看>>
EasyUI实现图片的上传后与其他文本框的提交以及DataGrid中图片的展示
查看>>
fri
查看>>
最先进的开源游戏引擎KlayGE 4.4发布
查看>>
准备翻译Windows 8 动手实验系列教程
查看>>
不启动桌面系统运行qt程序
查看>>
[双硬盘GPT分区安装linux] ----安装
查看>>
Funny Car Racing CSU - 1333 (spfa)
查看>>
c++ 类的默认八种函数
查看>>
[ kvm ] 学习笔记 1:Linux 操作系统及虚拟化
查看>>
zfs mount
查看>>
easyui之combobox(不定时补充)
查看>>
hdu 3487 Play with Chain (Splay Tree easy)
查看>>
Oracle unable to extend temp segment by 128 in tablespace TEMP
查看>>
android.graphics.Bitmap.Config<ALPHA_8, ARGB_4444,ARGB_8888,RGB_565>
查看>>
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
查看>>
第 17 章 Native SQL查询
查看>>
js与jquery异同
查看>>
jquery笔记(效果)
查看>>
windows.h
查看>>