目标达到的效果:两个下拉框,第二个跟随第一个变化而变化,使用客户端脚本JavaScript在ASP.NET环境下实现。

第一步:建立JavaScript脚本:

在Page_Load中建立并注册这个js脚本:

string scriptKey = "MenuChange";

if (!Page.IsStartupScriptRegistered(scriptKey) &&  !Page.IsPostBack)

{

string scriptBlock =

@"<script language=""JavaScript"">

<!--

function InitBigClass()

{

bigclass  = new Array();

bigclass[0]  = new Array();

bigclass[0][0]  = '0';

bigclass[0][1]  = '全部论坛';

bigclass[1]  = new Array();

bigclass[1][0]  = '3';

bigclass[1][1]  = 'Web 开发';

bigclass[2]  = new Array();

bigclass[2][0]  = '4';

bigclass[2][1]  = '软件工程/管理';

}

function InitSmallClass()

{

smallclass  = new Array();

smallclass[0]  = new Array();

smallclass[0][0]  = '301';

smallclass[0][1]  = 'ASP';

smallclass[0][2]  = '3';         // 此处与上面的大类对应

smallclass[1]  = new Array();

smallclass[1][0]  = '303';

smallclass[1][1]  = 'PHP';

smallclass[1][2]  = '3';

smallclass[2]  = new Array();

smallclass[2][0]  = '401';

smallclass[2][1]  = '软件工程';

smallclass[2][2]  = '4';

smallclass[3]  = new Array();

smallclass[3][0]  = '403';

smallclass[3][1]  = '软件测试';

smallclass[3][2]  = '4';

}

InitBigClass();

InitSmallClass();

function changeitem(myfrm)               // 主要js的函数!!!

{

var SelectedBigId,i,j;

for (i= myfrm.smallclassid.options.length-1;i>=0  ;--i)

{

myfrm.smallclassid.options[i] = null;

}

SelectedBigId = myfrm.bigclassid.options[myfrm.bigclassid.selectedIndex].value;

j = 0;

for (i=0 ;i< smallclass.length ;i++)

{

if (SelectedBigId == smallclass[i][2])

{

myfrm.smallclassid.options[j] = new Option(smallclass[i][1],smallclass[i][0]);

++j;

}

}

}

//-->

</script> ";

Page.RegisterClientScriptBlock(scriptKey, scriptBlock);      // 注册这个脚本

}

第二步:在页面中加入两个<select>

<select id="bigclassid" οnchange="javascript:changeitem(document.Form1);" name= "bigclassid"> (Form的id为Form1)

<option value="0" selected>全部论坛</option>

</select>

<select id="smallclassid" name="smallclassid">

<option>请您选择</option>

</select>

注意select的id和name属性要与上面的js相一致。

第三步:在Button_OnClick()中加入代码

int i;

for(i=0;i<Request.Form.Count;i++)

if(Request.Form.AllKeys[i].ToString()=="smallclassid")

break;                          // 从form中找到这个select (根据id或者name查找)

int SelectValue = Request.Form.GetValues(i)[0];   //  这个值就是 select 选中的值

asp.net中的联动菜单相关推荐

  1. asp+ajax菜单,AJAX_基于asp+ajax和数据库驱动的二级联动菜单,index.asp 页面代码 复制代码 代 - phpStudy...

    基于asp+ajax和数据库驱动的二级联动菜单 index.asp 页面代码 复制代码 代码如下: set cmd = conn.execute("select bigclassid,big ...

  2. AngularJS中实现无限级联动菜单(使用demo)

    原文地址:http://www.cnblogs.com/front-end-ralph/p/5133122.html 昨天没来得及贴几个使用demo,今天补上,供有兴趣的同学参考 :) 1. 同步加载 ...

  3. 利用JavaScript在ASP.NET中动态生成系统菜单

      用户在登陆一个系统后通常会因为权限的不同而使用不同的系统功能,我们在实现用户使用的菜单项时有两种选择,一是列出全部系统菜单项,根据用户的权限禁用一部分菜单,二是根据权限动态加载菜单,这样只要列出的 ...

  4. ASP+XML+JavaScript实现动态无限级联动菜单

    我做某个项目时,有需求的是做一个动态的无限级的联动菜单.由于本人比较懒于是上网找找有关的代码,但很多都没有满足需求,其中有一编文章是用JavaScript对XML文件操作来实现无限级联动菜单的,我们可 ...

  5. phpcms v9中模板标签和联动菜单的使用方法详解

    2019独角兽企业重金招聘Python工程师标准>>> pc:content action="position" posid="9" orde ...

  6. 转载 javascript联动菜单

    JavaScript-联动select菜单完全解析,看完本例后你将彻底了解有关网页联动菜菜的用法.如果再配上Ajax技术,那么联动的select框效果将会更好. 下载与演示地址 http://lsln ...

  7. 全国省市县无刷新多级联动菜单

    全国省市县无刷新多级联动菜单 <html> <head> <title>省市县关联菜单</title> <meta http-equiv=&quo ...

  8. C#:二级联动菜单的实现

    二级联动菜单,顾名思义,即一个菜单的变化会自动触发另一个相关联菜单的变化. 举个简单的例子,第一个菜单显示"北京",第二菜单会相应绑定列表"海淀区"," ...

  9. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

最新文章

  1. Linux下简单的邮件服务器搭建
  2. Flutter开发之ListView组件(21)
  3. 4.2w Star的文件同步工具,比VIP网盘还好用!
  4. python重复元素判定编程_从零开始学Python编程四:条件判断与循环
  5. 中用BBP公式计算_散户如何计算庄家的持仓量和持仓成本?
  6. C++设计模式-AbstractFactory抽象工厂模式
  7. python语句块的定义_第五章、Python语句
  8. python函数局部变量_Python局部函数– functoolspartial()
  9. 初步接触XCode和IPhone Simulator
  10. 统计学习导论(ISLR) 第四章分类算法课后习题
  11. Vijos P1423 最佳路线
  12. python如何合并txt文件_Python实现将目录中TXT合并成一个大TXT文件的方法
  13. 2018大华软件竞赛——模拟赛——第二题
  14. 数据库可靠性/可用性、稳定性RTO/RPO
  15. 例 6.5 有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
  16. Markdown 书写规范
  17. 【计算机科学基础】Unicode与UTF-8
  18. Java面试题十篇基本问题,学完这些我就不信拿不到offer
  19. 什么才是市场急需的前端工程师?【零基础web前端入门视频教程】
  20. 无线路由器有几种工作模式

热门文章

  1. Linux镜像如何添加驱动,安装virtio驱动(Linux)
  2. mysql onlibe all_MySQL Online DDL
  3. Pycharm问题归纳
  4. 嵌入式系统降低功耗的设计技术
  5. 1. 编程规范和编程安全指南--python
  6. 如何理解numpy.nan_to_num
  7. 强化学习(二)- 动态规划(Dynamic Programming)
  8. JS如何深度复制对象和数组,避免指针变量引用修改值
  9. 设置VSCode刷新资源管理器快捷键Ctrl+Shift+R
  10. 在macOS Sierria 10.12.2上升级默认的vim