У меня есть выпадающий список на веб-форме ASP.NET. Это установлено на автостопбек и viewstate включен. Когда я запускаю свой проект из Visual Studio, я могу изменить значение, выбрать новое значение в обратной передаче и отобразить некоторые связанные результаты в сетке (Infragistics). Я могу постоянно менять значение и сетку обновлять правильно.
Когда я копирую это из своего окна test / dev на работающий сервер Windows 2008, все меняется. Первое изменение в раскрывающемся списке вызывает обратную передачу, но сетка не обновляется, поскольку событие SelectedIndexChanged в раскрывающемся списке не запускается. Второе изменение полностью удаляет выпадающий список.
Элементы в раскрывающемся списке создаются при первой загрузке страницы в виде простых элементов ListItems, которые добавляются в коллекцию Items элемента управления. Значения извлекаются из системы Microsoft CRM, но без привязки к данным.
Кто-нибудь может объяснить, что происходит не так и почему поведение в Visual Studio будет отличаться от того, что происходит при жизни?
protected void Page_Load(object sender, EventArgs e)
{
_crm = GetCrmConnection();
if (!IsPostBack)
{
ShowDepotList();
ShowJobsForCurrentDepot(); // Updates the grid - not shown in SO
}
}
private void ShowDepotList()
{
List<BusinessEntity> depots = _crm.GetDepots();
foreach (DynamicEntity depot in depots)
{
string depotName = depot.Properties["dpt_name"].ToString();
string locationName = depot.Properties["dpt_locationname"].ToString();
ListItem depotListItem = new ListItem
{
Text = string.Format("{0} - {1}", depotName, locationName),
Value = ((Key)depot.Properties["dpt_sitedetailid"]).Value.ToString()
};
DepotInput.Items.Add(depotListItem);
}
}
protected void DepotInput_SelectedIndexChanged(object sender, EventArgs e)
{
ShowJobsForCurrentDepot();
}