转载请注明出处--翱翔.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>

-----------------------------------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中来!.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决