求教:如何实现DropDownList的无刷新变化? 两个DropDownList控件绑定相应字段,这两个字段在库中是一对多的关系,其中一个dropdownlist的value/text值 根据另一个 DropDownList控件value/text变化而变,不要刷新页面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 autopostback 设置为false 然后用javascript实现功能 用 XMLHTTP 实现或者,用客户端脚本实现联动例子 N 多,去 WEB 搜一下 ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单 转载请注明出处--翱翔.Net Blog Http://cnblogs.com/HoverNews_Aclass表---大类表ClassID Int 4ClassName varchar 50News_Anclass表---小类表NclassID int 4Nclass varchar 50ClassID 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]); } }} http://www.pconline.com.cn/pcedu/empolder/wz/asp/0408/440941.htmlhttp://www.cnblogs.com/hover/archive/2005/01/17/92871.html两个都是,不过我是转化不过来,因为JS不懂。 重金求解:URL重写、URL地址加密 页面验证 邮件发送(第一次点击按钮不响应) .net2003居然连不上sqlserver了!!!!!!!!!!!!!! javascript读取RadioButtonList的值 讨论一下如何减小对SQL Server数据库服务器的资源占用 寻asp.net/C#软件下载系统 代码如下,这个删除的弹出确认删除对话框如何加上?大家快来帮忙呀! Sql Server难题,20天无人能解。 webdiyer分页控件,我想在分页控件上加一个分页输入框,请问怎么操作啊 求一段菜单关联的代码. 若是我把联动地区选择组件做成了用户web自定义控件,该如何取省市的值?
然后用javascript实现功能
转载请注明出处--翱翔.Net Blog Http://cnblogs.com/HoverNews_Aclass表---大类表
ClassID Int 4
ClassName varchar 50News_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]);
}
}
}
两个都是,不过我是转化不过来,因为JS不懂。