当前位置: 首页 > 编程日记 > 正文

asp.net中的联动菜单

目标达到的效果:两个下拉框,第二个跟随第一个变化而变化,使用客户端脚本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 选中的值

相关文章:

2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!

今天&#xff0c;「INFLUENCE长沙 2020年度“科技之星”企业评选」&#xff08;下文统称「长沙科技之星」&#xff09;圆满收官&#xff0c;评选结果正式揭晓&#xff01;作为专业的 IT 社区&#xff0c;CSDN 多年来与千万技术人员、技术企业共同见证了产业的发展和时代的变更…

CENTOS6.4 IBUS输入法不显示候选词解决办法

IBUS输入法 不显示候选词原因分析&#xff1a;输入im-chooser时候&#xff0c;显示找不到gtk模块&#xff1b;原因为升级python后的版本&#xff0c;不能导入gtk。找到能够导入gtk版本的python,然后默认python设置为此版本。故障解决&#xff1a;删除或更改默认python版本# whi…

sql server 表索引碎片处理

DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本更新日期&#xff1a; 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息。 重要提示&#xff1a;后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能&#xff0c;并着手修…

ASP.NET2.0 GridView小技巧汇粹

1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按钮可以生成,具体的编辑更新和删除操作在代码运行时而不是在控件设计时指定,虽然多写了一点代…

树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元

整理 | 郑丽媛来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;昨天&#xff0c;树莓派搞了个大动作&#xff1a;推出了首款微控制器开发板 Raspberry Pi Pico&#xff01;该开发板基于树莓派开发的全新芯片——RP2040&#xff0c;并且作为双核 Arm Cortex-M0 的它…

“chaos”的算法--之链表面试题

【 声明&#xff1a;版权所有&#xff0c;欢迎转载。 联系信箱&#xff1a;yiluohuanghungmail.com】前两天倩仔仔给我了一套试题让我看&#xff0c;整体来说感觉题都还算不错&#xff0c;从中随便找了两道。先看题吧&#xff01;1、怎样判断一个单链表中是都存在环路&#xff…

ABP官方文档翻译 6.1.2 MVC视图

ASP.NET MVC 视图 介绍AbpWebViewPage基类介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图。你可以如往常一样创建正常的MVC视图。 AbpWebViewPage基类 ABP提供了AbpWebViewPage&#xff0c;它定义了一些有用的属性和方法。如果你使用启动模板创建的工程&#xff0c;那么你所有的…

ASP.NET 打开新窗口几种方法

ASP.NET打开新窗口方法一:Response.Write("<script language/"javascript/">window.open(aaa.aspx,新窗口,/"toolbaryes,locationno,directoriesyes,statusyes,menubaryes,resizableyes,scrollbarsyes/");</script>");这种方式代码每…

Hibernate的使用梳理

Hibernate创建步骤 &#xff08;五大核心接口&#xff1a;Configuration/SessionFactory/Session/Transaction/Query&#xff09; 1.新建java工程&#xff0c;导入需要的jar包。 2.创建hibernate.cfg.xml配置文件和Test.java工具类。配置好相应的实体对象User.java User.hbm.x…

驭势科技引入国家队战略注资,完成超10亿元人民币融资

2021年1月25日&#xff0c;驭势科技&#xff08;UISEE&#xff09;宣布完成累计金额超10亿元人民币的新一轮融资&#xff0c;并获得国开制造业转型升级基金的战略注资。这是国开制造业转型升级基金在自动驾驶领域的首笔投资。2019年11月&#xff0c;国家制造业转型升级基金股份…

[Python爬虫] 之二十二:Selenium +phantomjs 利用 pyquery抓取界面网站数据

一、介绍 本例子用Selenium phantomjs爬取界面&#xff08;https://a.jiemian.com/index.php?msearch&aindex&typenews&msg电视&#xff09;的资讯信息&#xff0c;输入给定关键字抓取资讯信息。 给定关键字&#xff1a;数字&#xff1b;融合&#xff1b;电视 抓取…

android高级编程-android高级应用

android高级应用>>>第一阶段程序员基本素质养成程序员所需要具备的12条职业素质让学员初步了解和审视自己所应该具备的职业素质。并且我们会在授课中随时训练和贯彻这样的素质&#xff0c;最终把大家捏成专业的职业的程序员。迭发各个环节及工具初步介绍总概性的讲解一…

asp.net三种重定向方法的总结

(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. (2)Server.Execute方法: Server.Execute("m2.aspx"…

区区几行Python代码,一分钟搞定一天工作量

作者 | 陈熹、刘早起来源 | 早起Python大家好&#xff0c;我是早起。前几天有一个读者说最近要整理几千份文件&#xff0c;头都要整秃了&#xff0c;不知道能不能用Python解决&#xff0c;我们来看一下&#xff0c;你也可以思考一下。由于涉及文件私密所以具体内容已做脱敏处理…

bc计算命令的知识及企业计算案例

bc命令的用法&#xff1a;bc是unix下的计算器&#xff0c;它也可以用在命令行下面&#xff1a;例&#xff1a;给自变量i加1i2iecho $i1|bc -----效率低#因为bc支持科学计算&#xff0c;所以这种方法功能非常强大[rootXCN ~]# echo 11|bc 2 [rootXCN ~]# echo 1*1|bc 1 […

ExecutorService与Executors例子的简单剖析(转)

对于多线程有了一点了解之后&#xff0c;那么来看看java.lang.concurrent包下面的一些东西。在此之前&#xff0c;我们运行一个线程都是显式调用了 Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行&#xff0c;而且这将成为以后常用的方法或者实现思路。 …

GridView隐藏列取值解决方案

【摘要】 在Asp.net 2.0中增加了一个新的数据绑定控件&#xff1a;GridView&#xff0c;其目的用来取代Asp.net1.x中的DataGrid控件&#xff0c;但有一点很不爽的是&#xff0c;如果把某列设置为visiblefalse&#xff0c;则不会进行数据绑定&#xff0c;也就是说无法直接从Grid…

百度飞桨成为北京市首个AI产业方向创新应用平台

1月20日&#xff0c;北京市经济和信息化局正式授予百度公司"北京市人工智能产业创新应用平台&#xff08;百度飞桨&#xff09;"。当前&#xff0c;北京市正在创建国家人工智能创新应用先导区&#xff0c;人工智能作为新科技革命和产业变革前沿领域&#xff0c;是北京…

FTP的20、21端口,工作模式

什么是FTP? FTP就是文件传输协议 File Transfer Protocol 的缩写. FTP端口号是多少? 21 FTP的端口号能改吗? 能 ftp的端口号20、21有何区别? 一个是数据端口&#xff0c;一个是控制端口&#xff0c;控制端口一般为21&#xff0c;而数据端口不一定是20&#xff0c;这和FTP的…

android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu[转]

http://blog.csdn.net/jj120522/article/details/8095852 示意图就不展示了&#xff0c;和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉&#xff0c;在这里我简单说明一下用自定义ViewGroup来实现. 实现方法&#xff1a;我们自定义一个ViewGroup实现左右滑动&#…

物联网下的数据传输,Python 就能搞定!

作者 | 李秋键责编 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;引言&#xff1a;近几年来&#xff0c;谈起发展最火热的几个关键词必然是人工智能、大数据以及物联网的万物互联、边缘计算等等了。而今天&#xff0c;我们就将利用Python实现物联网下的数据传…

ASP.NET 2.0中Page事件的执行顺序

Page 执行中将按照如下顺序激活事件&#xff1a;Page.PreInitPage.InitPage.InitComplitePage.PreLoadPage.LoadPage.LoadCompletePage.PreRenderPage.PreRenderComplete如果页面从令一个页面继承&#xff0c;如BasePage:System.Web.UI.Page&#xff0c;在BasePage中做了一些扩…

javascript函数嵌套时arguments的问题

疑问&#xff1a; var funtest function () {var fun function (val, val2) {alert(arguments.length); //此处答案&#xff1f; 有些人回答是2&#xff0c;但是正确是 0 };setTimeout(fun, 20);};funtest(); 转载于:https://www.cnblogs.com/huaan011/p/7073792.html

禁用页面缓存的几种方法(静态和动态)

1、在Asp页面首部<head>加入 Response.Buffer True Response.ExpiresAbsolute Now() - 1 Response.Expires 0 Response.CacheControl "no-cache" Response.AddHeader "Pragma", "No-Cache&…

程序员转型AI,成功几率有几分?

技术转型&#xff0c;这两年一直是程序员圈子里的热门话题。对于大部分基层程序员来说&#xff0c;基础岗位上薪资的涨幅很难跟上年龄的增长。而近些年&#xff0c;AI技术发展势头迅猛&#xff0c;优秀人才短缺&#xff0c;这种情况下&#xff0c;无疑是谁先转型&#xff0c;谁…

利用反射实现类的动态加载

为什么80%的码农都做不了架构师&#xff1f;>>> //首先定义一个接口来隔离类&#xff1a; public interface Operator { // public java.util.List act(java.util.List params);public java.util.List act(String content,String content2,java.util.List param…

spring+ (activeMQ) 实现queue与topic

2019独角兽企业重金招聘Python工程师标准>>> 2017-06-17 1、activeMQ下载与安装 前往Apache官网下载ActiveMQ&#xff0c;下载地址http://activemq.apache.org/download.html&#xff08;此处我下载了apache-activemq-5.9.0 版本的tar包&#xff09;解压&#xff1a…

C#文本文件操作

如何向现有文件中添加文本using System;using System.IO;class Test {public static void Main() {// Create an instance of StreamWriter to write text to a file.// The using statement also closes the StreamWriter.using (StreamWriter sw new StreamWriter("Tes…

RISC-V 正在成为芯片世界中的 Linux

【编者按】芯片推动了人类社会数字化、信息化、智能化的发展。从某种程度上来说&#xff0c;芯片技术的发展也影响着行业未来的走向。你觉得未来的芯片世界将会如何&#xff1f;编译 | 虎说八道 责编 | 张文头图 | CSDN 下载自视觉中国出品 | CSDN&#xff08;ID&#xff1a;C…

linux系统小记

1.当某分区空间剩余很大时&#xff0c;可用dd命令写入0&#xff0c;做成很大的文件后格式化&#xff0c;可当作分区使用&#xff08;-o loop挂载&#xff09;#dd if/dev/zero of/wq bs1M count512#mkfs -t ext3 /wq#mkswap /wq#swapon /wq#mount -o loop /wq /data#mou…