两个DropDownList控件绑定相应字段,这两个字段在库中是一对多的关系,其中一个dropdownlist的value/text值 根据另一个 DropDownList控件value/text变化而变,不要刷新页面

解决方案 »

  1.   

    autopostback 设置为false 
    然后用javascript实现功能
      

  2.   

    用 XMLHTTP 实现或者,用客户端脚本实现联动例子 N 多,去 WEB 搜一下
      

  3.   

    ASP.NET利用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]);
            }
        }
    }
      

  4.   

    http://www.pconline.com.cn/pcedu/empolder/wz/asp/0408/440941.htmlhttp://www.cnblogs.com/hover/archive/2005/01/17/92871.html
    两个都是,不过我是转化不过来,因为JS不懂。