ajax2级联动,遇到一个异步优先级问题,使用settimeout 解决
2009-06-17 16:03
776 查看
页面:
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;
/// <summary>
/// 使用说明
///
/// 若要获取整个字符串
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenValue"))).Value
/// 获取到的字符串分别依次是 城市名,城市id,区县名,区县ID,请split
///
/// 若需要独立的值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityName"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityID"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuName"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuID"))).Value
///
/// 若要给dropdowlist赋初始值:在隐藏域中赋值,会被dropdownlist获取到
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityName"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityID"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuName"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuID"))).Value = 值
/// </summary>
public partial class CorpUserRegister_AreaSelect : System.Web.UI.UserControl
{
////通过protected的变量,向page传递参数
//public string _cityName = string.Empty;
//public string _cityID = string.Empty;
//public string _cityQuName = string.Empty;
//public string _cityQuID = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(CorpUserRegister_AreaSelect));
this.drp_Chengshi.Attributes.Add("onchange", "getDiqu();");
this.drp_Qu.Attributes.Add("onchange", "postDiqu();");
//取默认的城市
ViewState["S_AreaCode"] = FlowDll.GetSysDefaultAreaCode( );
if (!Page.IsPostBack)
{
bindCity();
bindQu();
}
else
{
bindQu();
}
}
private void bindCity()
{
DataView dr = new UserRegisterOp().BindDdl_Area().DefaultView;
this.drp_Chengshi.DataSource = dr;
drp_Chengshi.DataTextField = "Title";
drp_Chengshi.DataValueField = "Code";
drp_Chengshi.DataBind();
drp_Chengshi.SelectedValue = ViewState["S_AreaCode"].ToString();
drp_Chengshi.Items.Insert(0, new ListItem("选择", "-1"));
//判断本地是否可选
try
{
drp_Chengshi.Enabled = bool.Parse(System.Configuration.ConfigurationSettings.AppSettings["bLocalAreaCodeEdit"].ToString());
}
catch
{
//若没有特别定义,都可选
drp_Chengshi.Enabled = true;
}
}
/// <summary>
/// 邦定本市的区
/// </summary>
private void bindQu()
{
DataView dr = new UserRegisterOp().BindDdl_SubArea(drp_Chengshi.SelectedValue.Trim()).DefaultView;
drp_Qu.DataSource = dr;
drp_Qu.DataTextField = "title";
drp_Qu.DataValueField = "sortcode";
drp_Qu.DataBind();
drp_Qu.Items.Insert(0, new ListItem("请选择", "-1"));
}
[AjaxPro.AjaxMethod]
public DataView getDiqu(string cityID)
{
DataView dv = new UserRegisterOp().BindDdl_SubArea(cityID).DefaultView;
return dv;
}
////向公共变量中传递值
[AjaxPro.AjaxMethod]
public string postDiqu(string[] options)
{
return ViewState["diqu"].ToString();
}
}
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;
/// <summary>
/// 使用说明
///
/// 若要获取整个字符串
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenValue"))).Value
/// 获取到的字符串分别依次是 城市名,城市id,区县名,区县ID,请split
///
/// 若需要独立的值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityName"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityID"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuName"))).Value
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuID"))).Value
///
/// 若要给dropdowlist赋初始值:在隐藏域中赋值,会被dropdownlist获取到
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityName"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenCityID"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuName"))).Value = 值
/// ((HiddenField)(this.AreaSelect1.FindControl("HiddenQuID"))).Value = 值
/// </summary>
public partial class CorpUserRegister_AreaSelect : System.Web.UI.UserControl
{
////通过protected的变量,向page传递参数
//public string _cityName = string.Empty;
//public string _cityID = string.Empty;
//public string _cityQuName = string.Empty;
//public string _cityQuID = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(CorpUserRegister_AreaSelect));
this.drp_Chengshi.Attributes.Add("onchange", "getDiqu();");
this.drp_Qu.Attributes.Add("onchange", "postDiqu();");
//取默认的城市
ViewState["S_AreaCode"] = FlowDll.GetSysDefaultAreaCode( );
if (!Page.IsPostBack)
{
bindCity();
bindQu();
}
else
{
bindQu();
}
}
private void bindCity()
{
DataView dr = new UserRegisterOp().BindDdl_Area().DefaultView;
this.drp_Chengshi.DataSource = dr;
drp_Chengshi.DataTextField = "Title";
drp_Chengshi.DataValueField = "Code";
drp_Chengshi.DataBind();
drp_Chengshi.SelectedValue = ViewState["S_AreaCode"].ToString();
drp_Chengshi.Items.Insert(0, new ListItem("选择", "-1"));
//判断本地是否可选
try
{
drp_Chengshi.Enabled = bool.Parse(System.Configuration.ConfigurationSettings.AppSettings["bLocalAreaCodeEdit"].ToString());
}
catch
{
//若没有特别定义,都可选
drp_Chengshi.Enabled = true;
}
}
/// <summary>
/// 邦定本市的区
/// </summary>
private void bindQu()
{
DataView dr = new UserRegisterOp().BindDdl_SubArea(drp_Chengshi.SelectedValue.Trim()).DefaultView;
drp_Qu.DataSource = dr;
drp_Qu.DataTextField = "title";
drp_Qu.DataValueField = "sortcode";
drp_Qu.DataBind();
drp_Qu.Items.Insert(0, new ListItem("请选择", "-1"));
}
[AjaxPro.AjaxMethod]
public DataView getDiqu(string cityID)
{
DataView dv = new UserRegisterOp().BindDdl_SubArea(cityID).DefaultView;
return dv;
}
////向公共变量中传递值
[AjaxPro.AjaxMethod]
public string postDiqu(string[] options)
{
return ViewState["diqu"].ToString();
}
}
相关文章推荐
- 初学Flex,在使用Webservice时遇到Xml数据绑定的一个问题,试了N个方案,均没解决。
- 100000个嵌入式学习者遇到的PING不通问题,我们使用这一个视频就解决了,牛!
- 解决在java的ssm框架中使用ajax提交数据遇到的跨域问题
- java桌面程序中使用联动菜单遇到与解决的问题
- 解决使用Visual Studio 2005制作Windows Mobile安装包遇到的一个小问题
- 在使用BizTalk时遇到一个很郁闷的问题 之解决篇
- 使用mina时遇到“您的主机中的软件放弃了一个已建立的连接”问题解决
- 使用python+selenium制作浏览器爬虫,彻底解决ajax异步加载问题(待更新)
- spring mvc 下使用ajaxfileupload.js 异步上传文件 并返回信息 各种问题解决
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- 使用Ajax遇到一个问题
- 异步串口 I/O操作 中遇到的一个问题及解决
- jQuery 使用ajax提交遇到兼容性问题及解决方法
- 在Ajax中使用get和post所遇到的问题及解决办法
- 【jQuery】解决在循环中使用ajax异步时,数据的同步问题
- requireJS中使用setTimeout和setInterval遇到的问题和解决方式
- 解决在循环中使用ajax异步时,数据的同步问题
- 使用AjaxPro与Session交互时遇到一个问题
- 这是我学习COM遇到的几个基本问题其解决 黄森堂(vcmfc)著 1.我用ATL生成一个组件对象,我在COM中使用IDD_IEncrypt,这个在哪里写义,是啥?GUID? 答:IDD_IEncry
- IE7中使用AJAX遇到的一个问题