none
DataBind при загрузке на отдельные элементы RRS feed

  • Вопрос

  • Добрый день!

    Подскажите. Перехожу на стр редактирования данных конкретной записи с передачей параметра по URL. На Page_Load стр редактирования стоит DataBind(), после этого на странице нельзя добавить, изменить запись в DetailView и GridView, ругается: "Недействительный аргумент обратной передачи или обратного вызова.  Проверка события включена с помощью <pages enableEventValidation="true"/> в конфигурации или <%@ Page EnableEventValidation="true" %> на странице.  В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова поступают из элемента управления сервера, сформировавшего их изначально.  Если данные действительные и ожидавшиеся, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи и обратного вызова для проверки."

    Ставил EnableEventValidation="false", тогда DetailView и GridView не реагируют на нажатие кнопок.

    Без DataBind() всё работает, но DataBind() нужен, чтобы обновить набор данных, иначе не отображаются картинки.

    Можно ли как-нибудь применить DataBind() частично, не ко всем компанентами, а например только к Image

    2 июня 2012 г. 17:11

Ответы

  • Это проблема стара как древний мир, сам с ней неоднократно сталкивался, абстракции ASP.NET WebForms, с которыми приходится мириться. Возникает она при динамической генерации Html разметки на основе шаблонов, так как сама среда не знает о контролах( в Вашем случае кнопки) которая сама и создаёт, поэтому отказывается принимать события сгенерированные ими. Отключение enableEventValidation, только для одной страницы, как один из вариантов решения, но тогда страница начнёт "глотать" всё подряд, не очень то и хороший вариант. Можно попробавать обходные пути, например вместо кнопок использовать ссылки, если подойдёт для этого случая. Или самому генерировать разметку с использованием скриптов,  хотя это уже более сложный вариант.
    4 июня 2012 г. 12:51
    Модератор

Все ответы

  • Используете ли Вы шаблоны в DetailView и GridView?
    Модератор
  • Используете ли Вы шаблоны в DetailView и GridView?
    Да, использую. Без них Я не смогу показывать значение связанных таблиц.
    3 июня 2012 г. 10:52
  • Это проблема стара как древний мир, сам с ней неоднократно сталкивался, абстракции ASP.NET WebForms, с которыми приходится мириться. Возникает она при динамической генерации Html разметки на основе шаблонов, так как сама среда не знает о контролах( в Вашем случае кнопки) которая сама и создаёт, поэтому отказывается принимать события сгенерированные ими. Отключение enableEventValidation, только для одной страницы, как один из вариантов решения, но тогда страница начнёт "глотать" всё подряд, не очень то и хороший вариант. Можно попробавать обходные пути, например вместо кнопок использовать ссылки, если подойдёт для этого случая. Или самому генерировать разметку с использованием скриптов,  хотя это уже более сложный вариант.
    4 июня 2012 г. 12:51
    Модератор
  • calvink1989, посмотрите варианты решения этой проблемы, предложенные Yatajga. Если решения вас устроит, то не забудьте отметить сообщение как ответ. Спасибо.

    Для связи [mail]

    5 июня 2012 г. 11:37
    Модератор