У меня есть DropDownList
, и мой метод его заполнения работает следующим образом:
ddlStaff.Items.Clear();
ddlStaff.Items.AddRange(staff.Select(x => new ListItem(x.Name, x.Id.ToString())
{ Selected = (x == DefaultStaff) }).ToArray());
ddlStaff находится в UpdatePanel
, и есть еще один DropDownList
, для которого SelectedIndexChanged
является AsyncPostBackTrigger дляUpdatePanel
.Событие изменяет область действия, заполняет список staff
, затем снова запускает приведенное выше.
Все работает нормально, как есть, но я хотел бы знать, изменил ли пользователь ddlStaff, чтобы яв основном может сделать что-то вроде { Selected = (x == (UserSelectedStaff ?? DefaultStaff)) }
.Есть ли встроенный способ сделать это?Или мне просто нужно вспомнить, каким был последний отобранный штат, который я отправил (в сеансе или в состоянии просмотра), а затем сравнить его с фактическим выбранным персоналом, когда он вернется?
Изменить, чтобы уточнить : Я намерен отправить ddlStaff, заполненный персоналом и уже выбранным сотрудником по умолчанию.Если пользователь выбирает сотрудника, а затем изменяет раскрывающийся список области более высокого уровня, я бы хотел, чтобы ответная копия не перезаписывала выбранного сотрудником сотрудника (если, конечно, этот сотрудник не существует в новой области).Однако если пользователь не изменил штатного сотрудника, мне следует перезаписать его значением по умолчанию для новой области.