У меня есть элемент управления GridView, подключенный к источнику данных, на котором я разрешаю редактирование строк. Я использую стандартные кнопки редактирования / сохранения / удаления, которые указывают на команды Обновить, Отмена и редактировать GridView.
Я хотел бы добавить дополнительную кнопку «Далее», встроенную в кнопку сохранения / отмены. Это будет работать так же, как кнопка сохранения, но также добавит дополнительную строку в сетку и переведет эту строку в режим редактирования. Для этого я добавил код в событие Updated
GridView, которое добавляет новую запись в базу данных, связывает сетку и устанавливает индекс редактирования. Кажется, это работает, но на самом деле сетка не возвращается в режиме редактирования. Я удалил новый код записи и просто оставил оператор для установки индекса редактирования, но сетка все равно не останется в режиме редактирования.
Можно ли заставить сетку оставаться в режиме редактирования в этом сценарии? Похоже, что если вы не установите свойство cancel GridViewUpdatedEventArgs
, Сетка перейдет в режим просмотра. Я не хочу устанавливать свойство cancel в этом случае, потому что я хочу, чтобы GridView вызывал мой объект источника данных для сохранения записи. * +1007 *
Если это не сработает, похоже, мне потребуется разрешить обновление, чтобы оно происходило нормально, вернуться к клиенту и затем отправить другой запрос на сервер, чтобы добавить запись. Я предпочел бы не делать это таким образом, я хотел бы выполнить необходимые операции в контексте одного туда и обратно.
Вот как выглядит код (упрощенно):
protected void Button1_Click(object sender, EventArgs e)
{
// Works Fine
this.sampleDataSource.Insert();
this.sampleGridView.DataBind();
this.sampleGridView.EditIndex = this.sampleGridView.Rows.Count - 1;
}
protected void sampleGridView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
// Grid will display new row, but will not be in edit mode
this.sampleDataSource.Insert();
this.sampleGridView.DataBind();
this.sampleGridView.EditIndex = this.sampleGridView.Rows.Count - 1;
}