asp.net中的联动菜单
2007-03-26 22:13
302 查看
标达到的效果:两个下拉框,第二个跟随第一个变化而变化,使用客户端脚本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" onchange="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选中的值
第一步:建立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" onchange="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选中的值
相关文章推荐
- (原创)再谈 N 个 ASP.net DropDownList 无刷新联动菜单(较全)
- asp.net中的联动菜单
- ASP.NET中设置两级菜单联动用户控件的属性为外部使用
- N 个 ASP.net DropDownList 无刷新联动菜单
- ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单
- 再谈 N 个 ASP.net DropDownList 无刷新联动菜单
- asp.net中的联动菜单
- N 个 ASP.net DropDownList 无刷新联动菜单
- ★ asp.net中的联动菜单
- ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单
- asp.net中的联动菜单 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- 再谈 N 个 ASP.net DropDownList 无刷新联动菜单
- 谈 N 个 ASP.net DropDownList 无刷新联动菜单(较全)
- 再谈 N 个 ASP.net DropDownList 无刷新联动菜单
- N 个 ASP.net DropDownList 无刷新联动菜单
- ASP.net DropDownList 无刷新联动菜单
- N 个 ASP.net DropDownList 无刷新联动菜单 [转]
- asp.net中的联动菜单
- ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单
- [导入]asp.net中的联动菜单