下面是cs代码
using System;
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 System.Text;
using GetCommand; //这是一个连接数据库的DLL

public partial class Ajax_ShowCity : System.Web.UI.Page, ICallbackEventHandler

...{

/**//// <summary>
/// 声明一个数据集对象
/// </summary>
private DataSet lookupData = null;
protected void Page_Load(object sender, EventArgs e)

...{
string js = Page.ClientScript.GetCallbackEventReference(this, "arg", "OnServerCallComplete", "ctx", "OnServerCallError", true);//这里false表示异步回调; true表示同步回调);
StringBuilder newFunction = new StringBuilder();
newFunction.Append("function StartAsyncCall(arg,ctx) ");
newFunction.Append("{ ");
newFunction.Append( js );
newFunction.Append(" } ");
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "NewAsyncMethod", newFunction.ToString(), true);

/**////
/// 是首页上显示出所有城市出来
///
this.ShowCity();
this.lblMessage.Text = SetConnection._errorStatus;
this.lblMessage.Text += SetConnection.status;
}


/**//// <summary>
/// 显示城市
/// </summary>
private void ShowCity()

...{
string executeString = "select CityID,CityName from City";
GridView1.DataSource = this.GetLookupValuesFromDatabase(executeString,"City");
this.GridView1.DataBind();
}

/**//// <summary>
/// 返回一个数据集
/// </summary>
/// <param name="executeString">sql语句或存储过程</param>
/// <param name="TableName">在内存中名和名称</param>
/// <returns>ds</returns>
private DataSet GetLookupValuesFromDatabase(string executeString,string TableName)

...{
DataSet ds = GetCommand.SetConnection.getDataSet(executeString, TableName);
return ds;
}

/**//// <summary>
/// 返回回调结果
/// </summary>
/// <returns></returns>
public string GetCallbackResult()

...{

/**////
/// 存放City表中的城市ID号
///
StringBuilder ids = new StringBuilder();

/**////
/// 存放City表中的城市名称
///
StringBuilder names = new StringBuilder();
int rowCount = 0;
int numberRows = lookupData.Tables["City"].Rows.Count;
foreach (DataRow row in lookupData.Tables["City"].Rows)

...{
rowCount++;
if (rowCount <= numberRows)

...{
ids.Append(row["CityID"].ToString());
ids.Append("|");
names.Append(row["CityName"].ToString());
names.Append("|");
}
//if (rowCount < numberRows)
//{
//}
}
string returnData = string.Format("{0}~{1}", ids.ToString(), names.ToString());
return returnData;
}
public void RaiseCallbackEvent(string eventArgument)

...{
System.Threading.Thread.Sleep(2000);
string executeString = "select CityID,CityName from City";
lookupData = this.GetLookupValuesFromDatabase(executeString, "City");
}
}
下面是html里的代码
















































































































