没接触过ajax,又苦与项目中经常遇到联动的情况,看了小山的例子,发现一不小心爱上ajax了http://www.cnblogs.com/singlepine/archive/2005/10/19/257954.aspx
修改了下小山的程序,支持了后台读取数据设定 DropDownList的selected值。
TextBox17用来读取省id,TextBox18用来读取城市id,TextBox19用来读取注册时的城市id。
另:Ajax实现调用后台方法
首先把Ajax.dll文件复制到项目所在文件夹下的bin下,然后在VS项目的引用添加Ajax.dll文件。
其次在Web.Config文件中的<system.web>里添加如下代码:
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
其中Ajax是指刚才引用的dll文件。
新建一个AjaxMethod类,添加方法的方式如下:
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public DataSet GetCityList()
{
//TODO:Add Your Codes here
}
接着在所建页面的cs文件(如WebForm1.aspx.cs)中的Page_load()中添加如下代码即可在页面调用后台方法:
Utility.RegisterTypeForAjax(typeof(AjaxTest.AjaxMethod));
对于AjaxTest.AjaxMethod,AjaxTest为命名空间,AjaxMethod为AjaxTest下的类。
在前台我们就可以用以下方式调用后台的方法了:
AjaxMethod.GetCityList(value,get_city_Result_CallBack);
function get_city_Result_CallBack(response){}
第一行中的value为要传到后台的值,get_city_Result_CallBack为前台的一个方法函数。
执行完第一句之后就转到执行第二句,response为后台返回前台的值,这个值不一定是一个数,此例中它是一个DataSet。