Используя DyanamicData, у меня есть стандартная таблица «многие ко многим», которая прекрасно работает при вставке новой уникальной строки. Раскрывающиеся списки для обеих родительских таблиц отображаются так, как должны, и строка вставляется правильно.
Однако в одной таблице у меня есть уникальный индекс, который выдает исключение, которое я могу поймать в обработчике события OnInserted. Затем я могу отправить приятное дружеское сообщение пользователю, сообщив ему о проблеме. Проблема возникает из-за того, что DetailsView теряет состояние представления и значения, выбранные пользователем для DropDownLists, возвращаются к значениям по умолчанию страницы.
protected void DetailsDataSource_Inserted(object sender, LinqDataSourceStatusEventArgs e)
{
if (e.Exception != null && !e.ExceptionHandled)
{
msgPanel.Text = "Error Occurred"; // or some other friendly message
e.ExceptionHandled = true;
// e.Result == null, so I can't rebuild the user's input from here.
// What can be put where to get the user's input restored?
}
}