簡體   English   中英

ASP.NET Web窗體頁中的類屬性(?)

[英]Class Attributes (?) in ASP.NET Web Form Page

我在C#中創建了一個自定義的BoundField類。 我在TextBox中添加了ASP.NET驗證器,並在編輯和插入模式下公開了TextBox OnTextChanged事件。 我遇到了驗證者的煩惱。

我在這個例子中公開公開了驗證器:

private RequiredFieldValidator _requiredFieldValidator;
public RequiredFieldValidator RequiredFieldValidator
{
    get { return _requiredFieldValidator ?? (_requiredFieldValidator = new RequiredFieldValidator()); }
}

我已經使用這種方法來避免在控件本身中設置無數的自定義公共屬性。 我現在可以做到這一點......

<cc1:BoundFieldWithTextChangedEvent DataField="size2" HeaderText="Width" SortExpression="size2" ItemStyle-CssClass="numeric" OnTextChanged="size2_OnTextChanged" AutoPostBack="True"
            RequiredFieldValidator-Text="!"
            RequiredFieldValidator-Display="Dynamic" />

此代碼編譯良好,驗證在頁面上正常工作; 但我在Visual Studio 2013中的“RequiredFieldValidator-Text”和“RequiredFieldValidator-Display”屬性下看到了波形。第一個警告是:

驗證(ASP.Net):屬性'RequiredFieldValidator-Text'不是元素'BoundFieldWithTextChangedEvent'的有效屬性。

其他警告是針對“RequiredFieldValidator-”屬性的其余部分。

使用Visual Studio 2013,我需要執行哪些自定義控件代碼才能使這些屬性正常運行?

編輯:感謝Alex Lebedev的幫助,我的問題已經解決了。

我需要做兩件事:

  1. 在我的自定義控件中的公共驗證器屬性上添加[PersistenceMode(PersistenceMode.InnerProperty)]
  2. 在網絡表單頁面上引用驗證器作為我的自定義控件的內部元素。

 <cc1:BoundFieldWithTextChangedEvent DataField="size2" HeaderText="Width" SortExpression="size2" ItemStyle-CssClass="numeric" OnTextChanged="size2_OnTextChanged" AutoPostBack="True" ItemStyle-Wrap="false" ValidationGroup="UpdateItem"> <RequiredFieldValidator Text="!" ErrorMessage="You must specify a width." Display="Dynamic" SetFocusOnError="true" EnableClientScript="true"></RequiredFieldValidator> <CompareValidator Text="*" ErrorMessage="Width must be greater than zero." Operator="GreaterThan" ValueToCompare="0" Type="Double" Display="Dynamic" SetFocusOnError="true" EnableClientScript="true"></CompareValidator> </cc1:BoundFieldWithTextChangedEvent> 

<cc1:BoundFieldWithTextChangedEvent DataField="size2" HeaderText="Width" SortExpression="size2" ItemStyle-CssClass="numeric" OnTextChanged="size2_OnTextChanged" AutoPostBack="True"
            RequiredFieldValidator-Text="!"
            RequiredFieldValidator-Display="Dynamic" />

替換為:

<cc1:BoundFieldWithTextChangedEvent DataField="size2" HeaderText="Width" SortExpression="size2" ItemStyle-CssClass="numeric" OnTextChanged="size2_OnTextChanged" AutoPostBack="True">
        <RequiredFieldValidator Text="!" Display="Dynamic"/>
</cc1:BoundFieldWithTextChangedEvent>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM