DynamicValidator 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
強制執行並攔截數據模型中擲回的例外狀況,並顯示錯誤。
public ref class DynamicValidator : System::Web::UI::WebControls::BaseValidator
[System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicValidator), "DynamicValidator.ico")]
public class DynamicValidator : System.Web.UI.WebControls.BaseValidator
[System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicValidator), "DynamicValidator.bmp")]
public class DynamicValidator : System.Web.UI.WebControls.BaseValidator
[<System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicValidator), "DynamicValidator.ico")>]
type DynamicValidator = class
inherit BaseValidator
[<System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicValidator), "DynamicValidator.bmp")>]
type DynamicValidator = class
inherit BaseValidator
Public Class DynamicValidator
Inherits BaseValidator
- 繼承
- 屬性
範例
以下範例說明如何建立 DynamicValidator 一個控制類別,在所有頁面中顯示其他例外。
''' <summary>
''' Display other exceptions in all pages.
''' </summary>
Public Class MyDynamicValidator
Inherits DynamicValidator
Protected Overloads Overrides Sub ValidateException(ByVal exception As Exception)
' If it's not an exception that DynamicValidator displays find
' the innermost exception.
If Not (TypeOf exception Is IDynamicValidatorException) AndAlso _
Not (TypeOf exception Is ValidationException) Then
While exception.InnerException IsNot Nothing
exception = exception.InnerException
End While
' Wrap it in a ValidationException so that the base code
' does not ignore it.
If ExceptionShouldBeDisplayedInPage(exception) Then
exception = New ValidationException(Nothing, exception)
End If
End If
' Call the base class for the exception that is modified.
MyBase.ValidateException(exception)
End Sub
Private Function ExceptionShouldBeDisplayedInPage(ByVal e As Exception) _
As Boolean
' Add code to find the exception and
' decide whether it should be shown in the page.
Return True
End Function
End Class
/// <summary>
/// Display other exceptions in all pages.
/// </summary>
public class MyDynamicValidator : DynamicValidator {
protected override void ValidateException(Exception exception) {
// If it's not an exception that DynamicValidator displays find
// the innermost exception.
if (!(exception is IDynamicValidatorException) && !(exception
is ValidationException)) {
while (exception.InnerException != null) {
exception = exception.InnerException;
}
// Wrap it in a ValidationException so that the base code
// does not ignore it.
if (ExceptionShouldBeDisplayedInPage(exception)) {
exception = new ValidationException(null, exception);
}
}
// Call the base class on the exception that is modified.
base.ValidateException(exception);
}
private bool ExceptionShouldBeDisplayedInPage(Exception e) {
// Add your code to find the exception and
// decides whether it should be shown in the page.
return true;
}
}
以下範例展示了如何在 web.config 檔案中使用標籤重映射,在所有網頁中顯示例外。
<pages>
<tagMapping>
<add tagType="System.Web.DynamicData.DynamicValidator"
mappedTagType="MyDynamicValidator"/>
</tagMapping>
</pages>
備註
此 DynamicValidator 控制項可用於資料欄位或資料實體。 它會捕捉在 LINQ-to-SQL 類別或資料模型中可擴充性方法中拋出的例外。 這個 DynamicValidator 控制項與接受使用者輸入的控制項相關聯。 例如, DynamicValidator 一個與文字框相關的控制項,該框接受使用者輸入 ProductsInStock 欄位,該控制項會捕捉並顯示當輸入大於或少於資料模型中允許單位時拋出的例外。
預設情況下,ASP.NET 動態資料不會在頁面中顯示資料模型中的所有例外,因為部分資料庫例外可能包含機密資訊。 動態資料僅顯示 ValidationException 數值。 如果你想讓應用程式顯示其他例外,你可以建立 DynamicValidator 一個控制項,提供你想顯示的例外,並將例外附加到控制項 DynamicValidator 上。 資料模型中拋出的例外會在應用程式的所有頁面中顯示。
建構函式
| 名稱 | Description |
|---|---|
| DynamicValidator() |
初始化 DynamicValidator 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| AccessKey |
取得或設定存取金鑰,讓你能快速導航到網頁伺服器控制。 (繼承來源 WebControl) |
| Adapter |
拿到瀏覽器專用的控制器轉接器。 (繼承來源 Control) |
| AppRelativeTemplateSourceDirectory |
取得或設定包含此控制項的 or Page 物件的UserControl應用程式相對虛擬目錄。 (繼承來源 Control) |
| AssociatedControlID |
不支援這個屬性。 (繼承來源 BaseValidator) |
| Attributes |
取得一組任意屬性(僅用於渲染),這些屬性與控制項上的屬性不對應。 (繼承來源 WebControl) |
| BackColor |
取得或設定網頁伺服器控制項的背景色。 (繼承來源 WebControl) |
| BindingContainer |
取得包含該控制項資料綁定的控制項。 (繼承來源 Control) |
| BorderColor |
取得或設定網頁控制的邊框顏色。 (繼承來源 WebControl) |
| BorderStyle |
取得或設定網頁伺服器控制的邊界樣式。 (繼承來源 WebControl) |
| BorderWidth |
取得或設定網頁伺服器控制的邊界寬度。 (繼承來源 WebControl) |
| ChildControlsCreated |
會取得一個值,表示伺服器控制項的子控制項是否已被建立。 (繼承來源 Control) |
| ClientID |
取得由 ASP.NET 產生的 HTML 標記的控制 ID。 (繼承來源 Control) |
| ClientIDMode |
取得或設定用於產生屬性值 ClientID 的演算法。 (繼承來源 Control) |
| ClientIDSeparator |
會得到一個字元值,代表該屬性中使用 ClientID 的分隔符字元。 (繼承來源 Control) |
| Column |
取得或設定欄位以驗證。 |
| ColumnName |
取得欄位名稱以進行驗證。 |
| Context |
取得 HttpContext 與伺服器控制項相關聯的物件,用於目前的網頁請求。 (繼承來源 Control) |
| Controls |
取得 ControlCollection 一個物件,代表 UI 階層中指定伺服器控制項的子控制項。 (繼承來源 Control) |
| ControlStyle |
這就有網頁伺服器控制的風格。 此特性主要由對照顯影劑使用。 (繼承來源 WebControl) |
| ControlStyleCreated |
會取得一個值,表示該屬性是否 Style 已建立 ControlStyle 物件。 此特性主要由控制顯影劑使用。 (繼承來源 WebControl) |
| ControlToValidate |
取得或設定輸入控制來驗證。 (繼承來源 BaseValidator) |
| CssClass |
取得或設定由網頁伺服器控制項在用戶端渲染的層疊樣式表(CSS)類別。 (繼承來源 WebControl) |
| DataItemContainer |
如果命名容器實 IDataItemContainer作 。 (繼承來源 Control) |
| DataKeysContainer |
如果命名容器實 IDataKeysControl作 。 (繼承來源 Control) |
| DesignMode |
會獲得一個值,表示是否在設計表面上使用控制項。 (繼承來源 Control) |
| Display |
取得或設定錯誤訊息在驗證控制中的顯示行為。 (繼承來源 BaseValidator) |
| EnableClientScript |
取得或設定一個值,指示是否啟用用戶端驗證。 (繼承來源 BaseValidator) |
| Enabled |
取得或設定一個值,指示驗證控制是否啟用。 (繼承來源 BaseValidator) |
| EnableTheming |
取得或設定一個值,指示主題是否適用於此控制。 (繼承來源 WebControl) |
| EnableViewState |
取得或設定一個值,指示伺服器控制項是否能持久化其視圖狀態,以及其包含的任何子控制項的視圖狀態,給請求端客戶端。 (繼承來源 Control) |
| ErrorMessage |
當驗證失敗時,會取得或設定控制中顯示 ValidationSummary 的錯誤訊息文字。 (繼承來源 BaseValidator) |
| Events |
會取得一個事件處理代理清單來管理控制。 這個屬性是唯讀的。 (繼承來源 Control) |
| Font |
取得與網頁伺服器控制項相關的字型屬性。 (繼承來源 WebControl) |
| ForeColor |
當驗證失敗時,會取得或設定訊息的顏色。 (繼承來源 BaseValidator) |
| HasAttributes |
會得到一個值,表示控制項是否設定了屬性。 (繼承來源 WebControl) |
| HasChildViewState |
會取得一個值,表示目前伺服器控制項的子控制項是否儲存了任何檢視狀態設定。 (繼承來源 Control) |
| Height |
取得或設定網頁伺服器控制的高度。 (繼承來源 WebControl) |
| ID |
取得或設定分配給伺服器控制的程式識別碼。 (繼承來源 Control) |
| IdSeparator |
取得用來分離控制識別碼的字元。 (繼承來源 Control) |
| IsChildControlStateCleared |
會取得一個值,表示該控制中所包含的控制是否具有控制狀態。 (繼承來源 Control) |
| IsEnabled |
會得到一個值,表示該控制項是否已啟用。 (繼承來源 WebControl) |
| IsTrackingViewState |
會得到一個值,表示伺服器控制是否正在儲存對其檢視狀態的變更。 (繼承來源 Control) |
| IsUnobtrusive |
會得到一個值,表示該控制項是否產生不干擾的 JavaScript。 (繼承來源 BaseValidator) |
| IsValid |
取得或設定一個值,指示相關輸入控制是否通過驗證。 (繼承來源 BaseValidator) |
| IsViewStateEnabled |
會取得一個值,表示此控制是否啟用了檢視狀態。 (繼承來源 Control) |
| LoadViewStateByID |
會得到一個值,表示控制項是否參與載入其視圖狀態 ID ,而非索引。 (繼承來源 Control) |
| NamingContainer |
會取得伺服器控制項命名容器的參考,該容器會建立一個獨特的命名空間,用來區分具有相同 ID 屬性值的伺服器控制項。 (繼承來源 Control) |
| Page |
會取得包含 Page 伺服器控制的實例參考。 (繼承來源 Control) |
| Parent |
在頁面控制階層中,會取得伺服器控制項的父控制權的參考。 (繼承來源 Control) |
| PropertiesValid |
會得到一個值,表示屬性所指定的 ControlToValidate 控制是否有效。 (繼承來源 BaseValidator) |
| RenderingCompatibility |
會得到一個值,指定渲染後的 HTML 會相容的 ASP.NET 版本。 (繼承來源 Control) |
| RenderUplevel |
會得到一個值,表示客戶端瀏覽器是否支援「上層」渲染。 (繼承來源 BaseValidator) |
| SetFocusOnError |
取得或設定一個值,表示當驗證失敗時,焦點是否被設定為屬性指定的 ControlToValidate 控制。 (繼承來源 BaseValidator) |
| Site |
當在設計表面渲染時,會取得承載當前控制項的容器資訊。 (繼承來源 Control) |
| SkinID |
取得或設定皮膚貼合控制劑。 (繼承來源 WebControl) |
| Style |
會取得一組文字屬性,這些屬性會被渲染成 Web 伺服器控制項外層標籤上的樣式屬性。 (繼承來源 WebControl) |
| SupportsDisabledAttribute |
會取得一個值,指示當控制項 |
| TabIndex |
取得或設定網頁伺服器控制的分頁索引。 (繼承來源 WebControl) |
| TagKey |
取得用來渲染 Label 控制項的 HTML 標籤。 (繼承來源 Label) |
| TagName |
取得控制標籤名稱。 此特性主要由對照顯影劑使用。 (繼承來源 WebControl) |
| TemplateControl |
取得或設定包含此控制項的範本參考。 (繼承來源 Control) |
| TemplateSourceDirectory |
取得包含當前伺服器控制權的 or Page 虛擬目錄UserControl。 (繼承來源 Control) |
| Text |
當驗證失敗時,取得或設定驗證控制中顯示的文字。 (繼承來源 BaseValidator) |
| ToolTip |
當滑鼠指標懸停在網頁伺服器控制項上時,會取得或設定顯示的文字。 (繼承來源 WebControl) |
| UniqueID |
取得伺服器控制的唯一、階層限定的識別碼。 (繼承來源 Control) |
| ValidateRequestMode |
取得或設定一個值,指示控制器是否檢查瀏覽器的客戶端輸入是否有潛在危險的值。 (繼承來源 Control) |
| ValidationException |
在驗證期間取得或設定驗證例外。 |
| ValidationGroup |
取得或設定該驗證控制所屬的驗證群組名稱。 (繼承來源 BaseValidator) |
| ViewState |
取得狀態資訊字典,讓你能儲存並還原伺服器控制的多個請求,針對同一頁面。 (繼承來源 Control) |
| ViewStateIgnoresCase |
會得到一個值,表示該物件是否 StateBag 不區分大小寫。 (繼承來源 Control) |
| ViewStateMode |
取得或設定此控制的視圖狀態模式。 (繼承來源 Control) |
| Visible |
取得或設定一個值,指示伺服器控制項是否以 UI 形式呈現在頁面上。 (繼承來源 Control) |
| Width |
取得或設定網頁伺服器控制的寬度。 (繼承來源 WebControl) |
方法
事件
| 名稱 | Description |
|---|---|
| DataBinding |
當伺服器控制項綁定到資料來源時會發生。 (繼承來源 Control) |
| Disposed |
當伺服器控制從記憶體中釋放時發生,這是伺服器控制生命週期中請求 ASP.NET 頁面的最後階段。 (繼承來源 Control) |
| Init |
發生在伺服器控制初始化時,這是其生命週期的第一步。 (繼承來源 Control) |
| Load |
當伺服器控制項載入 Page 物件時會發生。 (繼承來源 Control) |
| PreRender |
發生在物件載入後 Control 但渲染之前。 (繼承來源 Control) |
| Unload |
當伺服器控制項從記憶體卸載時發生。 (繼承來源 Control) |
明確介面實作
擴充方法
| 名稱 | Description |
|---|---|
| FindDataSourceControl(Control) |
回傳與指定控制項相關聯的資料來源。 |
| FindFieldTemplate(Control, String) |
回傳指定控制項命名容器中指定欄位的欄位範本。 |
| FindMetaTable(Control) |
回傳包含資料控制項的元值物件。 |