转载请注明出处--翱翔.Net Blog Http://cnblogs.com/Hover
News_Aclass表---大类表
ClassID Int 4
ClassName varchar 50
News_Anclass表---小类表
NclassID int 4
Nclass varchar 50
ClassID int 4
---------------------------------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>
<!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>
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 窗体设计器生成的代码
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write(Request.Params[1]);
Response.Write("</br>");
Response.Write(Request.Params[2]);
}
}
}
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 窗体设计器生成的代码
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write(Request.Params[1]);
Response.Write("</br>");
Response.Write(Request.Params[2]);
}
}
}