您的位置:首页 > Web前端 > JavaScript

ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单

2008-01-30 14:35 866 查看
---------------------------------aspx------------------------------




<%

@ Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="HoverPortal.Modules.NewsManager.test" enableViewState="False"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >


<HTML>


<HEAD>


<title>test</title>


<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">


<meta name="CODE_LANGUAGE" Content="C#">


<meta name="vs_defaultClientScript" content="JavaScript">


<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">


</HEAD>


<body>


<form id="Form1" method="post" runat="server">


<asp:DropDownList id="ClassID" runat="server" onChange="changelocation(document.Form1.ClassID.options[document.Form1.ClassID.selectedIndex].value)"></asp:DropDownList>


<asp:DropDownList id="NclassID" runat="server"></asp:DropDownList>


<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>


</form>


</body>


</HTML>



-----------------------------------cs------------------------------------------


using System;


using System.Collections;


using System.ComponentModel;


using System.Data;


using System.Drawing;


using System.Web;


using System.Web.SessionState;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.HtmlControls;


using System.Data.SqlClient;


using Microsoft.ApplicationBlocks.Data;




namespace HoverPortal.Modules.NewsManager






{




/**//// <summary>


/// test 的摘要说明。


/// </summary>


public class test : System.Web.UI.Page






{


protected System.Web.UI.WebControls.DropDownList NclassID;


protected System.Web.UI.WebControls.Button Button1;


protected System.Web.UI.WebControls.DropDownList ClassID;




private void Page_Load(object sender, System.EventArgs e)






{


// 在此处放置用户代码以初始化页面


ReWriteScript();


//if(!Page.IsPostBack )


DataBinds();


}


private void ReWriteScript()






{


int count=0;


string scriptString="<Script Language=JavaScript>/n var onecount;";


scriptString +="/nonecount=0;";


scriptString +="/nsubcat=new Array();";


SqlDataReader rs=this.GetNclass();


while(rs.Read())






{


scriptString +="/n subcat["+count+"]=new Array("+"'"+rs["Nclass"]+"'"+","+"'"+rs["classID"]+"'"+","+"'"+rs["NclassID"]+"'"+");";


count++;


}


rs.Close();


scriptString +="/n onecount="+count+";";


scriptString +="/n function changelocation(locationid){";


scriptString +="/n document.Form1.NclassID.length = 0;";


scriptString +="/n var locationid=locationid;";


scriptString +="/n var i;";


scriptString +="/n for(i=0; i<onecount; i++){";


scriptString +="/n if(subcat[i][1]==locationid){";


scriptString +="/n document.Form1.NclassID.options[document.Form1.NclassID.length]=new Option(subcat[i][0],subcat[i][2]);";


scriptString +="/n }";


scriptString +="/n }";


scriptString +="/n }";


scriptString +="<";


scriptString +="/";


scriptString +="script>";


if(!this.IsClientScriptBlockRegistered("clientScript"))






{


this.RegisterClientScriptBlock("clientScript",scriptString);


}


}




private SqlDataReader GetNclass()






{


SqlDataReader NclassReader=SqlHelper.ExecuteReader(SqlDbObject.Connection,CommandType.StoredProcedure,"sp_News_GetNClass");


return NclassReader;


}


private DataSet Getclass()






{


DataSet Classds=SqlHelper.ExecuteDataset(SqlDbObject.Connection,CommandType.StoredProcedure,"sp_News_GetClass");


return Classds;


}


private DataSet Getnclass()






{


DataSet Classds=SqlHelper.ExecuteDataset(SqlDbObject.Connection,CommandType.StoredProcedure,"sp_News_GetNClass");


return Classds;


}


private DataSet Getnclass(int classid)
{
SqlParameter[] parameter={new SqlParameter("@ClassID",SqlDbType.Int,4)};
parameter[0].Value=classid;
using(DataSet ds=SqlHelper.ExecuteDataset(SqlDbObject.Connection,CommandType.StoredProcedure,"Sp_News_GetNclassBYclassID",parameter))
{
return ds;
}
}


private void DataBinds()






{


DataTable dt=this.Getclass().Tables[0]; //获得大类列表


this.ClassID.DataSource=dt;


this.ClassID.DataTextField="ClassName";


this.ClassID.DataValueField="ClassID";


this.ClassID.DataBind();


DataTable dtn=Getnclass(int.Parse(this.ClassID.SelectedValue)).Tables[0]; //根据大类列表默认选中项读出所属的小类列表


this.NclassID.DataSource=dtn;


this.NclassID.DataTextField="Nclass";


this.NclassID.DataValueField="NclassID";


this.NclassID.DataBind();




}




Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码


override protected void OnInit(EventArgs e)






{


//


// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。


//


InitializeComponent();


base.OnInit(e);


}






/**//// <summary>


/// 设计器支持所需的方法 - 不要使用代码编辑器修改


/// 此方法的内容。


/// </summary>


private void InitializeComponent()






{


this.Button1.Click += new System.EventHandler(this.Button1_Click);


this.Load += new System.EventHandler(this.Page_Load);




}


#endregion




private void Button1_Click(object sender, System.EventArgs e)






{


Response.Write(Request.Params[1]);


Response.Write("</br>");


Response.Write(Request.Params[2]);


}


}


}



只是把写asp用的移值到asp.net中来!.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: