无刷新动态选择省份和城市的实例

来源:互联网 发布:linux怎么卸载光盘 编辑:程序博客网 时间:2024/05/16 06:26
 
无刷新二级联动下拉列表(ASP.NET,DropDownList)--省份城市选择实例
2006-09-11 23:09

 

Drop.aspx

DataBase是自定义得数据库操作类

-------------------------------------------------------------------------------------------------------------

<%@ Page language="c#" Codebehind="Drop.aspx.cs" AutoEventWireup="false" Inherits="Test.Drop" %>

<%@ Register TagPrefix="uc1" TagName="SfDqJs" Src="SfDqJs.ascx" %>

<form id="Form1" method="post" runat="server">
   <TABLE cellSpacing="1" cellPadding="1" width="100%" border="0">

            <TR>
        <TD class="td1" align="left"><STRONG>所在城市:</STRONG>
        </TD>
        <TD class="td2" align="left"><FONT face="宋体" color="#ff0000">
          <uc1:SfDqJs id="SfDqJs1" runat="server"></uc1:SfDqJs><asp:dropdownlist id="dropSf" runat="server"></asp:dropdownlist><asp:dropdownlist id="dropDq" runat="server"></asp:dropdownlist>*</FONT></TD>
       </TR>

</table>

------------------------------------------------------------------------------------------------------------------------

Drop.aspx.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 TourOnline.BgManage.member
{
 /// <summary>
 /// UserAdd 的摘要说明。
 /// </summary>
 public class UserAdd : System.Web.UI.Page
 {

          private string strSql;
          private DataBase db = new DataBase();
          private dropDataBind ddb = null;//自己写得DropDownList绑定类

          private void Page_Load(object sender, System.EventArgs e)
         {
             // 在此处放置用户代码以初始化页面
              if(!IsPostBack)
              {
                       dropSfDataBind();
               }
            }
        private void dropSfDataBind()
           {
            //省份绑定
             strSql = "select 省份ID,省份from [省份表名] order by sfOrder";
             ddb = new dropDataBind(dropSf,strSql);
              ddb.dropBindSpace("sfName","sfId","0","请选择所在省份");

           ddb = null;

         dropSf.Attributes.Add("onchange","javascript:Sfonchange(this.value);");//添加JS省份改变事件
   
           }

----------------------------------------------------------------------------------------------------------------------

处理无刷新得关键部分一个WebControl控件(SfDqJs.ascx)

<%@ Control Language="c#" AutoEventWireup="false"  TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<%@ Import namespace="System.Data" %>
<%
 Response.Write("<script language=javascript>");
  Response.Write("var aryDq = new Array(");
  DataBase db = new DataBase();
  string strSql = "select sfId,dqId,dqName from tbWebZdAreaDq order by dqOrder";
  DataSet ds = new DataSet();
  ds = db.GetDataSet(strSql,ds);
  int itbRowCount = ds.Tables[0].Rows.Count;
  int i = 0;
  foreach(DataRow row in ds.Tables[0].Rows)
  {
   Response.Write("new Array('" + row[0].ToString() + "','" + row[1].ToString() + "','" + row[2].ToString() + "'),");
  }
  Response.Write("new Array('0','0','0')");
  ds.Dispose();
  ds = null;
  Response.Write(");");
 Response.Write("</script>");
%>
<script language="javascript">
 function Sfonchange(sfId)
 {
  if (sfId!="")
  {
   var Dqstr="";j=0,p=0;
   for (i=0;i<aryDq.length;i++)
   {
    if (aryDq[i][0]==sfId)
    {
     j=j+1;
     Dqstr=Dqstr+aryDq[i][1]+","+aryDq[i][2]+",";
    }
   }
   document.Form1.dropDq.length=j+1;
   aryDq1=Dqstr.split(",");
   document.Form1.dropDq.options[0].value = "0";
   document.Form1.dropDq.options[0].text = "请选择所在城市";
   for (i=1;i<=j;i++)
   {
    if(aryDq1[p] != null && aryDq1[p] != "")
    {
     document.Form1.dropDq.options[i].value = aryDq1[p];
     document.Form1.dropDq.options[i].text = aryDq1[p+1];
    }
    p=p+2;
   }
  }
 }
</script>

原创粉丝点击