zoukankan      html  css  js  c++  java
  • ajax实现无刷新两级联动DropDownList

    本文来自小山blog:
    http://singlepine.cnblogs.com/articles/257954.html
    里面是三级联动,有数据库文件可下栽.
    我只是将三级更改为两级,使用SQL SERVER数据库而已.

    我的截图如下:
    o_Ajax两级DropDownList联动.JPG
    1.首先要在项目中增加对ajax.dll 的引用.

    2.AjaxMethod.cs

    using System;
    using System.Data;
    using System.Data.SqlClient;
    namespace MyAjaxSample
    {
        
    /// <summary>
        
    /// AjaxMethod 的摘要说明。
        
    /// </summary>

        public class AjaxMethod
        
    {

            
    #region GetPovinceList
            
    public static DataSet GetPovinceList()
            
    {
                
    string sql="select * from povince";
                
    return GetDataSet(sql);
            }

            
    #endregion


            
    #region GetCityList
            [Ajax.AjaxMethod]
            
    public  DataSet GetCityList(int povinceid)
            
    {
                
    string sql="select * from city where father='"+povinceid+"'";
                
    return GetDataSet(sql);            
            }

            
    #endregion


            
    #region GetAreaList
            [Ajax.AjaxMethod]
            
    public  DataSet GetAreaList(int cityid)
            
    {
                
    string sql="select * from area where father='"+cityid+"'";
                
    return GetDataSet(sql);            
            }

            
    #endregion

        
            
    #region GetDataSet
            
    public static DataSet GetDataSet(string sql)
            
    {
                
    string ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
                SqlDataAdapter    sda 
    =new SqlDataAdapter(sql,ConnectionString);
                DataSet ds
    =new DataSet();
                sda.Fill(ds);
                
    return ds;
            }

            
    #endregion


            

        }

    }


    3.HTML代码:

    <%@ Page language="c#" Codebehind="FourAjaxSample.aspx.cs" AutoEventWireup="false" Inherits="MyAjaxSample.FourAjaxSample" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
        
    <HEAD>
            
    <title>FourAjaxSample</title>
            
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
            
    <meta content="C#" name="CODE_LANGUAGE">
            
    <meta content="JavaScript" name="vs_defaultClientScript">
            
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
            
    <script language="javascript">
            
    function cityResult() 
            

                
    var city=document.getElementById("DropDownList1");
                AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
            }

            
            
    function get_city_Result_CallBack(response)
             
    {
              
    if (response.value != null)
                 
    {                    
                  document.all(
    "DropDownList2").length=0;                
              
    var ds = response.value;
                  
    if(ds != null && typeof(ds) == "object" && ds.Tables != null)
                  
    {                    
                    
    for(var i=0; i<ds.Tables[0].Rows.length; i++)
                
    {
                    
    var name=ds.Tables[0].Rows[i].city;
                  
    var id=ds.Tables[0].Rows[i].cityID;
                  document.all(
    "DropDownList2").options.add(new Option(name,id));
                }

                   document.all(
    "TextBox1").value="";  
                  }

                 }
                   
             
    return
           }


        
    function areaResult() 
        

            
    var area=document.getElementById("DropDownList2");
            AjaxMethod.GetAreaList(area.value,get_area_Result_CallBack);
        }



        
    function get_area_Result_CallBack()
        
    {
        
    var province=document.getElementById("DropDownList1");
            
    var pindex = province.selectedIndex;
            
    var pValue = province.options[pindex].value;
            
    var pText  = province.options[pindex].text;

            
    var city=document.getElementById("DropDownList2");
            
    var cindex = city.selectedIndex;
            
    var cValue = city.options[cindex].value;
            
    var cText  = city.options[cindex].text;
        document.all(
    "TextBox1").value=pText+cText;                        
     
        }

            
    </script>
        
    </HEAD>
        
    <body MS_POSITIONING="GridLayout">
            
    <form id="Form1" method="post" runat="server">
                
    <h3>Ajax实现两级联动</h3>
                
    <TABLE class="border" id="border" style="Z-INDEX: 101; LEFT: 16px; WIDTH: 289px; POSITION: absolute; TOP: 48px; HEIGHT: 79px"
                    borderColor
    ="#95b0d9" cellSpacing="0" cellPadding="0" width="289" align="center" bgColor="#ffffff"
                    border
    ="1">
                    
    <TR>
                        
    <TD style="WIDTH: 130px; HEIGHT: 27px" bgColor="#d8e7f6">
                            
    <asp:label id="Lab_province" runat="server">省(直辖市)</asp:label></TD>
                        
    <TD style="HEIGHT: 27px">
                            
    <asp:dropdownlist id="DropDownList1" runat="server" onchange="cityResult();"></asp:dropdownlist></TD>
                    
    </TR>
                    
    <TR>
                        
    <TD style="WIDTH: 130px; HEIGHT: 24px" bgColor="#d8e7f6">
                            
    <asp:Label id="Lab_City" runat="server">城市</asp:Label></TD>
                        
    <TD style="HEIGHT: 24px">
                            
    <asp:DropDownList id="DropDownList2" runat="server" onchange="areaResult();"></asp:DropDownList></TD>
                    
    </TR>
                    
    <TR>
                        
    <TD style="WIDTH: 130px" bgColor="#d8e7f6">你的最后选择是:
                        
    </TD>
                        
    <TD>
                            
    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox></TD>
                    
    </TR>
                
    </TABLE>
            
    </form>
        
    </body>
    </HTML>

    4 .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;

    namespace MyAjaxSample
    {
        
    /// <summary>
        
    /// FourAjaxSample 的摘要说明。
        
    /// </summary>

        public class FourAjaxSample : System.Web.UI.Page
        
    {
            
    protected System.Web.UI.WebControls.DropDownList DropDownList1;
            
    protected System.Web.UI.WebControls.Label Lab_province;
            
    protected System.Web.UI.WebControls.Label Lab_City;
            
    protected System.Web.UI.WebControls.TextBox TextBox1;
            
    protected System.Web.UI.WebControls.DropDownList DropDownList2;
        
            
    private void Page_Load(object sender, System.EventArgs e)
            
    {
                Ajax.Utility.RegisterTypeForAjax(
    typeof(MyAjaxSample.AjaxMethod));
                
    if(!Page.IsPostBack)
                
    {
                    
    this.DropDownList1.DataSource=AjaxMethod.GetPovinceList();
                    
    this.DropDownList1.DataTextField="province";
                    
    this.DropDownList1.DataValueField="provinceID";
                    
    this.DropDownList1.DataBind();
                    
    this.DropDownList1.Attributes.Add("onclick","cityResult();");
                    
    this.DropDownList2.Attributes.Add("onclick","areaResult();");
                }

            }


            
    #region Web 窗体设计器生成的代码
            
    override protected void OnInit(EventArgs e)
            
    {
                
    //
                
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                
    //
                InitializeComponent();
                
    base.OnInit(e);
            }

            
            
    /// <summary>
            
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            
    /// 此方法的内容。
            
    /// </summary>

            private void InitializeComponent()
            
    {    
                
    this.Load += new System.EventHandler(this.Page_Load);

            }

            
    #endregion

        }

    }


    5.web.config
    web.config设置数据库连接串

  • 相关阅读:
    【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用
    【代码笔记】多线程游戏开发——伏魔记:第一步——开始游戏界面实现(一)
    【代码笔记】Java基础:Java的方法和类
    【代码笔记】Java基础:类的继承(构造器)
    【代码笔记】XML深入学习:DTD约束与DTD语法(2)
    常见标签的全称
    CSS中margin与padding的区别
    jquery 执行语句无响应
    jquery autocomplete插件结合ajax使用
    在使用flask_Bootstrap的时候先加载了jquery-ui然后再加载jQuery,导致jQuery-ui无法使用。
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/932058.html
Copyright © 2011-2022 走看看