ASP.NET GridView - Как выполнить пользовательские инструкции обновления? - PullRequest
1 голос
/ 21 сентября 2010

У меня есть ASP.NET GridView, который отображает список окрестностей.

Я хочу, чтобы пользователь (администратор) мог редактировать название района.

Теперь база данных довольно сложна, и поэтому я не могу просто предоставить UpdateCommand / SqlDataSource для GridView.

Я связываю данные вручную (при первой загрузке и при событии PageIndexChanging).

Связывание / распечатка выгружаемых данных работает нормально.

Однако у меня возникают проблемы при попытке ОБНОВИТЬ данные.

Пользователь нажимает кнопку «Изменить», отображается текстовое поле для названия района, я изменяю текст, нажимаю «Обновить», но событие RowUpdating не запускается.

В основном я хочу получить отредактированную строку и выполнить пользовательское обновление с помощью LINQ.

Разве это невозможно с GridView? Если это не так, каковы мои альтернативы? Повторитель с кнопками LinkButton и скрытым текстовым полем, которое может менять / заменять метки?

Это моя разметка GridView:

<asp:GridView ID="NeighborhoodsGrid" 
              AllowPaging="true"
              PageSize="10"
              AutoGenerateColumns="false"
              EnableViewState="false"
              OnPageIndexChanging="NeighborhoodsGridPageIndexChanging"
              OnRowDataBound="NeighborhoodsGridRowDataBound"
              OnRowEditing="NeighborhoodsGridRowEditing" 
              OnRowCancelingEdit="NeighborhoodsGridRowCancellingEdit" 
              OnRowUpdating="NeighborhoodsGridRowUpdating" 
              AutoGenerateEditButton="true"
              runat="server">

И код позади:

protected void NeighborhoodsGridRowUpdating(object sender, GridViewUpdateEventArgs e)
{
   GridViewRow updatedRow = NeighborhoodsGrid.Rows[e.RowIndex]; // not firing. =(
}

У меня также есть GridView, обернутый в UpdatePanel, если это что-то меняет (не думаю, что это должно).

Есть идеи или альтернативные рекомендации?

1 Ответ

3 голосов
/ 21 сентября 2010

Парни, боже мой, плохой.

У меня было EnableViewState = "false".

Я понятия не имею, почему это повлияет на запуск события, или как другие события даже работали.

В любом случае, я установил значение true, и событие было запущено.

Я всегда пытаюсь установить ViewState в false, а затем включить его, как мне нужно.

На этот раз заплатил цену. =)

В любом случае проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...