Кнопка DataGrid - неверный обратный вызов или обратный вызов - PullRequest
2 голосов
/ 06 августа 2010

Я настроил DataGrid с количеством столбцов, флажком и столбцом в конце строки.

Я также изменяю компоновку сетки данных для события OnItemCreated, которая меняет компоновку сетки данных, расширяя строки с помощью атрибута «Rowspan» и удаляя дополнительные столбцы и элементы управления, где они больше не требуются.

Исходный макет сетки данных был настроен так:

___________________________________________
| 1 | Employee Name | 01/08/10 |[] |[SAVE]|
| 1 | Employee Name | 02/08/10 |[] |[SAVE]|
___________________________________________
| 2 | Employee Name | 01/08/10 |[] |[SAVE]|
___________________________________________
| 3 | Employee Name | 04/08/10 |[] |[SAVE]|
| 3 | Employee Name | 05/08/10 |[] |[SAVE]|
| 3 | Employee Name | 06/08/10 |[] |[SAVE]|
___________________________________________
| 4 | Employee Name | 03/08/10 |[] |[SAVE]|
___________________________________________

И теперь это выглядит так: раскрытые строки, удаленные элементы управления и столбцы таблицы данных удалены ...

___________________________________________
| 1 | Employee Name | 01/08/10 |[] |[SAVE]|
|   |               | 02/08/10 |   |      |
___________________________________________
| 2 | Employee Name | 01/08/10 |[] |[SAVE]|
___________________________________________
| 3 | Employee Name | 04/08/10 |[] |[SAVE]|
|   |               | 05/08/10 |   |      |
|   |               | 06/08/10 |   |      |
___________________________________________
| 4 | Employee Name | 03/08/10 |[] |[SAVE]|
___________________________________________

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

Однако, когда я нажимаю кнопку [СОХРАНИТЬ] для конкретного сотрудника, появляется сообщение об ошибке, подобное «Неверный обратный вызов или обратный вызов». Я понимаю, что это результат элементов управления и столбцов, которые я удалил в сетке данных, и проверка события не соответствует элементам, представленным в оригинале.

Я не хочу удалять EnableEventValidation, потому что это проблема безопасности.

Я знаю, что должен использовать метод Render, чтобы исправить любые изменения, которые я сделал до отображения страницы, но как мне решить эту проблему обратной передачи?

1 Ответ

0 голосов
/ 06 августа 2010

Хорошо, давайте посмотрим, откуда исходит ошибка.

GridView использует вызов javascript __DoPostBack () и сам по себе не вводит. Таким образом, он сам не посылает никаких входных данных из других ячеек.

Теперь я думаю, что вы не делали пользовательских вызовов DoPostBack - верно?

Второй момент, когда существует проверка, - это данные ViewState.

При любых изменениях использовать любую UpdatePanel, и в середине вы делаете любое обновление, которое изменяет это ViewState?

То, что я предлагаю вам попробовать, это отправить EnableViewState = "false" на ваш GridView, чтобы увидеть, если вы все еще получаете эту ошибку. Это не влияет на вас, потому что GridView при каждом обновлении перечитывает данные, которые необходимо создать.

И второй момент, который вам нужно проверить, это то, что вы изменяете свои данные и изменяете состояние просмотра. Может быть, путем размещения его в другом месте решить проблему. Например, если он у вас есть на Page_Load, возможно, вам нужно переместить его на PageInit - или наоборот.

Надеюсь, эта помощь.

...