此文件是利用atlas和webservice技术实现无刷新的联动操作.具体操作过程见代码:
页面文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Update.aspx.cs" Inherits="Update" %><%@ Register Assembly="AtlasControlToolkit" Namespace="AtlasControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script language = "javascript" type = "text/javascript" >
function getCity(value)
{
if(value != null)
{
Double.City(value, returnCity);
}
}
function returnCity(result)
{
//删除旧的纪录
for (var i=document.getElementById("ddlCity").options.length - 1 ; i>-1; i--) //记住,要从后面删除起
{
document.getElementById("ddlCity").options[i] = null;
}
var cityArr = result.split(";"); //拆分返回的字符串
//向下拉列表框中添加数据
var oOption = null;
for(var i = 0; i < cityArr.length -1; i++)
{
if(i == 0)
{
oOption = document.createElement("OPTION");
document.getElementById("ddlCity").options.add(oOption);
oOption.innerText = "请选择.....";
}
else
{
oOption = document.createElement("OPTION");
document.getElementById("ddlCity").options.add(oOption);
oOption.innerText = cityArr[i].substring(9, cityArr[i].length);
oOption.value = cityArr[i].substring(0, 9);
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<atlas:ScriptManager ID="scrManage" runat="server" EnableScriptComponents="true">
<Services>
<atlas:ServiceReference Path="Double.asmx" />
</Services>
</atlas:ScriptManager>
<div>
<asp:DropDownList ID="ddlProv" runat="server" >
</asp:DropDownList>
<br />
<asp:DropDownList ID="ddlCity" runat="server">
</asp:DropDownList>
<br />
</div>
</form>
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<references>
</references>
<components>
</components>
</page>
</script>
</body>
</html>
cs文件
public partial class Update : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadProv();
ddlProv.Attributes.Add("onchange", "getCity(this.value)");
}
}
private void LoadProv()
{
SqlConnection sqlCon = new SqlConnection("server = NIC; database = yourtrip; uid = sa; pwd = 888888");
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlCon;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "select code, codename from dd where code like '001%' and len(code) = 6";
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable("temp");
sqlDa.Fill(dt);
ddlProv.DataValueField = "code";
ddlProv.DataTextField = "codename";
ddlProv.DataSource = dt;
ddlProv.DataBind();
}
}
webservice代码
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Collections.Specialized;
using AtlasControlToolkit;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Double 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Double : System.Web.Services.WebService
{
[WebMethod]
public string City(string code)
{
SqlConnection sqlCon = new SqlConnection("server = 127.0.0.1; database = text; uid = sa; pwd = 888888");
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlCon;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "select code, codename from dd where code like '" + code + "%'";
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable("temp");
sqlDa.Fill(dt);
string city = string.Empty;
foreach(DataRow dr in dt.Rows)
{
city += Convert.ToString(dr["code"]) + Convert.ToString(dr["codename"]) + ";";
}
return city;
}
}