У меня есть несколько выпадающих списков на странице. Все они содержат список стран. Так что на заднем плане я получаю страны из базы данных и кеширую их. Я хотел бы заполнить эти выпадающие списки из другого потока.
Я также использую элементы управления 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();
}
}
Кто-нибудь видит возможную проблему? Или, может быть, вся моя концепция неверна? У кого-нибудь есть идеи, как решить эту проблему?