Внедрение gridView требуется VerifyRenderingInServerForm . но почему?

Asp.net

A.aspx

Я использую JQuery для доступа к файлу ashx, который загружает элемент управления ( ascx), который содержит GridView. Контент управления вводится на страницу...

Когда я делаю это:

   StringWriter writer = new StringWriter();
   HttpContext.Current.Server.Execute(page, writer, false);
   string output = writer.ToString();

Он говорит мне, что GridView должен быть размещен в разделе формы.

Итак, я создал свою страницу

public class MyPage: Page
    {
        public override void VerifyRenderingInServerForm(Control control)
        {
            //base.VerifyRenderingInServerForm(control);
        }
    }

и внутри него я переопределяю этот метод. Я использую свою страницу, и все в порядке.

Вопрос почему? Почему это должно быть в форме? Это не имеет никаких входов!

Кроме того, если мой ascx содержит только <asp:Label ( runatServer) все хорошо, и это не требует помещения его в форму.

Что мне не хватает?

1 ответ

Решение

Он не должен быть внутри формы, но единственный, кто знает, это вы. Это исключение также является способом предотвращения неприятных ошибок и предоставления четкого сообщения об ошибке. Только элементы управления, которые могут выполнять обратную передачу, должны быть вложены в HtmlForm контроль.

Другие вопросы по тегам