В пошаговых руководствах по MSDN приведен ряд примеров, в которых вы можете перетащить DataSource из панели инструментов, выполнить несколько простых шагов настройки, а затем перетащить ListView на экран, указать его на DataSource и затем - у вас есть полное редактирование таблицы.
Сейчас я пытаюсь написать свой собственный класс DataSource (класс, реализующий System.Web.UI.IDataSource ) и мой собственный класс DataSourceView. Теперь я назначаю экземпляр этого пользовательского класса DataSource классу ListView.DataSource .
Отображение всех элементов работает хорошо. Однако обновление, вставка и удаление просто не работает. Я переопределяю каждую функцию, которую я могу в моем классе DataSourceView, и они просто не вызываются.
Это такая огромная тема, я сосредоточу этот вопрос на одном простом примере:
Когда вы нажимаете кнопку «Редактировать» (кнопка внутри ItemTemplate с CommandName из «Edit», вы ожидаете, что ItemTemplate будет заменен EditItemTemplate . Этого не произошло. Единственный способ, которым я мог это сделать, - обработать событие onitemediting .
protected void _listViewPublicHolidays_ItemEditing(object sender, ListViewEditEventArgs e)
{
_listViewPublicHolidays.EditIndex = e.NewEditIndex;
_listViewPublicHolidays.DataBind();
}
Вряд ли это проблема, но почему мне вообще пришлось это делать? В пошаговых руководствах по MSDN, где я присоединяю ListView к LinqDataSource , этот код не нужно писать. Может ли кто-то, кто был здесь раньше, рискнуть предположить, что будет отличаться или отсутствовать в моем пользовательском источнике данных?