方法一:
a.aspx
html部分
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="a.aspx.cs" Inherits="ASPNET.wzh.shopDoNet.admin_a" %>
<HTML>
<HEAD>
<title>a</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="Javascrīpt" name="vs_defaultClientscrīpt">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<scrīpt>
function load(state){
var drp2 = document.getElementById("DropDownList2");
for(var i = 0;i<=drp2.options.length -1;i++){
drp2.remove(i);
}
var ōHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var ōDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "a.aspx?state="+state, false);
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items = oDoc.selectNodes("//CITY/Table");
for (var item = items.nextNode(); item; item = items.nextNode()){
var city = item.selectSingleNode("//city").nodeTypedValue;
var newOption = document.createElement("OPTION");
newOption.text = city;
newOption.value = city;
drp2.options.add(newOption);
}
}
</scrīpt>
</HEAD>
<body MS_POSITIONING="flowLayout">
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList>
<asp:Button ID="Button1" runat="server" ōnClick="Button1_Click" Text="Button" />
</form>
</body>
</HTML>
cs部分
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SqlConnection con = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
SqlCommand cmd = new SqlCommand("select state from authors group by state", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader(Commandbehavīor.CloseConnection);
DropDownList1.DataSource = dr;
this.DropDownList1.DataTextField = "State";
this.DropDownList1.DataValueField = "State";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onchange", "load(this.options[this.selectedIndex].innerText)");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(DropDownList1.SelectedValue+" "+DropDownList2.SelectedValue);
}
b.aspx
cs部分
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request["state"] != null)
{
string state = this.Request["state"].ToString();
SqlConnection con = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
SqlDataAdapter da = new SqlDataAdapter("select city from authors where state = '" + state + "'", con);
DataSet ds = new DataSet("CITY");
da.Fill(ds);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}
}
方法二:
后台代码:
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.EnterpriseLibrary.Data;
public partial class ajaxtest : System.Web.UI.Page
{
private static Database db = DatabaseFactory.CreateDatabase("mkstaffConn");
private string sqlcommand = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(ajaxtest));
if (!Page.IsPostBack)
{
SystemName();
TeamList.DataSource = TeamName(SystemList.SelectedValue.Trim());
TeamList.DataTextField = "name";
TeamList.DataValueField = "name";
TeamList.DataBind();
SystemList.Attributes.Add("onchange", "GetTeamList();");
}
}
private void SystemName()
{
try
{
sqlcommand = "SELECT DISTINCT system FROM MKTeam";
SystemList.DataSource = db.ExecuteDataSet(CommandType.Text, sqlcommand).Tables[0];
SystemList.DataTextField = "system";
SystemList.DataValueField = "system";
SystemList.DataBind();
}
catch
{
}
}
[AjaxPro.AjaxMethod]
/// <summary>
/// ajax调用方法
/// </summary>
/// <param name="systemselectname"></param>
public DataTable TeamName(string systemselectname)
{
try
{
sqlcommand = "select name from mkteam where system='" + systemselectname + "'";
return db.ExecuteDataSet(CommandType.Text, sqlcommand).Tables[0];
}
catch
{
return null;
}
}
}
前台代码:
<!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">
// <!CDATA[
function GetTeamList()
{
var System=document.getElementById("SystemList");
ajaxtest.TeamName(System.value,TeamCallBack);
}
function TeamCallBack(response)
{
if(response.value !=null)
{
var team=document.getElementById("TeamList");
var dt=response.value;
team.length=0;
for(var i=0;i<dt.Rows.length;i++)
{
var team_text=dt.Rows[i]["name"];
var team_value=dt.Rows[i]["name"];
team.options.add(new Option(team_text,team_value));
}
}
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="SystemList" runat="server" Width="120px">
</asp:DropDownList>
<asp:DropDownList ID="TeamList" runat="server" Width="120px">
</asp:DropDownList></div>
</form>
</body>
</html>