加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET Web窗体页中的类属性(?)

发布时间:2020-12-15 22:19:22 所属栏目:百科 来源:网络整理
导读:我在C#中创建了一个自定义的BoundField类.我在TextBox中添加了ASP.NET验证器,并在编辑和插入模式下公开了TextBox OnTextChanged事件.我遇到了验证者的烦恼. 我在这个例子中公开公开了验证器: private RequiredFieldValidator _requiredFieldValidator;publi
我在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”属性下看到了波形.第一个警告是:

Validation (ASP.Net): Attribute ‘RequiredFieldValidator-Text’ is not a
valid attribute of element ‘BoundFieldWithTextChangedEvent’.

其他警告是针对“RequiredFieldValidator-”属性的其余部分.

使用Visual Studio 2013,我需要执行哪些自定义控件代码才能使这些属性正常运行?

编辑:感谢Alex Lebedev的帮助,我的问题已经解决了.

我需要做两件事:

>在我的自定义控件中的公共验证器属性上方添加[PersistenceMode(PersistenceMode.InnerProperty)].
>在网络表单页面上引用验证器作为我的自定义控件的内部元素.

<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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读