Page.VerifyRenderingInServerForm(Control) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
確認 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)
參數
例外狀況
指定的伺服器控制項不包含在執行時伺服器控制的 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或輸出用戶端腳本時尤其重要。 複合伺服器控制不需要做出這種呼叫。