Page.VerifyRenderingInServerForm(Control) Метод

Определение

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

public:
 virtual void VerifyRenderingInServerForm(System::Web::UI::Control ^ control);
public virtual void VerifyRenderingInServerForm (System.Web.UI.Control control);
abstract member VerifyRenderingInServerForm : System.Web.UI.Control -> unit
override this.VerifyRenderingInServerForm : System.Web.UI.Control -> unit
Public Overridable Sub VerifyRenderingInServerForm (control As Control)

Параметры

control
Control

Серверный элемент управления ASP.NET, который должен находиться в элементе управления HtmlForm.

Исключения

Указанный серверный элемент управления не содержится между открывающим и закрывающим тегами серверного элемента управления HtmlForm во время выполнения.

Проверяемый элемент управления имеет значение null.

Примеры

В следующем примере кода переопределяется Page.Render метод пользовательского серверного элемента управления. Когда этот элемент управления записывает содержимое на страницу, он использует VerifyRenderingInServerForm метод, чтобы убедиться, что элемент управления отображается между открывающим и закрывающим тегами HtmlForm элемента управления.

// Override the Render method to ensure that this control
// is nested in an HtmlForm server control, between a <form runat=server>
// opening tag and a </form> closing tag.
protected override void Render(HtmlTextWriter writer) {
    // Ensure that the control is nested in a server form.
    if (Page != null) {
        Page.VerifyRenderingInServerForm(this);
    }
    base.Render(writer);
}
' Override the Render method to ensure that this control
' is nested in an HtmlForm server control, between a <form runat=server>
' opening tag and a </form> closing tag.
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)

    ' Ensure that the control is nested in a server form.
    If Not (Page Is Nothing) Then
        Page.VerifyRenderingInServerForm(Me)
    End If

    MyBase.Render(writer)

End Sub

Комментарии

Элементы управления, которые должны находиться внутри <form runat=server> тегов, могут вызывать этот метод перед их отображением, чтобы отображалось сообщение об ошибке, если они помещаются за пределы тегов. Элементы управления, которые публикуют назад или зависят от зарегистрированных блоков скриптов, должны вызывать этот метод в переопределении Control.Render метода. Страницы с другим способом отрисовки элемента формы сервера могут переопределить этот метод, чтобы вызвать исключение при различных условиях.

Серверные элементы управления, которые отправляют назад или используют клиентский скрипт, не будут работать, если они не заключены в теги серверного HtmlForm элемента управления (<form runat="server">). Эти элементы управления могут вызывать этот метод при отрисовке, чтобы предоставить четкое сообщение об ошибке, если они не заключены в HtmlForm элемент управления.

При разработке пользовательского серверного элемента управления этот метод часто вызывается при переопределении Render метода для любого типа входного тега. Это особенно важно, если входной элемент управления вызывает GetPostBackEventReferenceили создает клиентский скрипт. Составной серверный элемент управления не требует выполнения этого вызова.

Применяется к