您的位置:首页 > 其它

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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐