我在一个页面上有多个下拉列表。它们都包含国家/地区列表。所以在后台我从数据库中获取国家并缓存它们。我想从另一个线程填充这些下拉列表。我也在使用 AJAX 控件,所以我希望这一切都同时发生。而且在用户选择一个国家之后,我希望该国家的城镇向用户显示,并且我希望获得城镇也发生在另一个线程中,以便用户可以在列表尚未加载时填充其他控件。
我在某处读过我应该将 Page 作为该线程的参数,然后找到该下拉列表并填充它们。但这行不通。
这是另一个线程启动时调用的函数:
protected void GetCountries(object o)
{
if (Session["Countries"] == null)
{
Session["Countries"] = CountryRepository.Instance.GetAll();
}
if (o is Page)
{
Page p = (Page)o;
DropDownList ddl = (DropDownList)p.FindControl("ddlCountry");
ddl.DataSource = Session["Countries"] as List<Country>;
ddl.DataTextField = "Name";
ddl.DataValueField = "Id";
ddl.DataBind();
}
}
有人看到可能的问题吗?或者也许我的整个概念是错误的?有谁知道如何解决这个问题?