【问题标题】:asp.net front end validation - only lower values allowedasp.net 前端验证 - 只允许较低的值
【发布时间】:2011-11-11 22:36:43
【问题描述】:

我在 gridview 中编辑一个字段,希望编辑后的值不能大于旧值?

对此有前端验证吗?以免使用 javascript 弹出窗口

谢谢

<asp:TemplateField HeaderText="FC Amount">             
    <ItemTemplate>   
        <asp:Label ID="FCLabel" runat="server" Text='<%# Eval("FC AMOUNT") %>'></asp:Label>         
    </ItemTemplate>
    <EditItemTemplate>                    
        <asp:TextBox ID="FCTextBox1" runat="server" Text='<%# Eval("FC AMOUNT") %>'></asp:TextBox>
    </EditItemTemplate>
</asp:TemplateField> 

【问题讨论】:

    标签: asp.net visual-studio validation gridview frontend


    【解决方案1】:

    使用CompareValidator 控件:

    用旧值添加隐藏,并将其值与新值进行比较。或者设置ValueToCompare属性:

    <asp:TemplateField HeaderText="FC Amount">             
        <ItemTemplate>   
            <asp:Label ID="FCLabel" runat="server" Text='<%# Eval("FC AMOUNT") %>'></asp:Label>         
        </ItemTemplate>
        <EditItemTemplate>                    
            <asp:TextBox ID="FCTextBox1" runat="server" Text='<%# Eval("FC AMOUNT") %>'></asp:TextBox>
            <asp:CompareValidator 
        ID="cmpAmount" 
        runat="server" 
        ValueToCompare='<%# Eval("FC AMOUNT") %>'
        ControlToValidate="FCTextBox1"
        Type="Double"
        Operator="LessThanEqual" /> 
    
        </EditItemTemplate>
    </asp:TemplateField>
    

    How to: Validate Against a Specific Value for ASP.NET Server Controls
    CompareValidator.Operator Property

    【讨论】:

    • @Karl 添加了更多文档的示例和链接。我认为你应该阅读那篇文章。
    • 它给了我一个运行时错误异常详细信息:System.Web.HttpException:无法找到由“cmpAmount”的“ControlToCompare”属性引用的控件 ID“hdnOldValue”。
    • @Karl 这是因为隐藏字段在模板中
    • 工作正常 :) 除了反过来,用户不能输入更大的值,我只需要更改运算符吗?谢谢
    • @Karl 好吧,是的,你应该改变它。更新了答案并提供了该属性的链接。
    【解决方案2】:

    试试这个,

     <asp:CompareValidator 
            ID="cval1" 
            runat="server" 
            ValueToCompare='<%#Eval("OldValue") %>'
            ControlToValidate="FCTextBox1"
            Type="Integer"
            Operator="GreaterThanEqual" /> 
    

    【讨论】:

    • 我必须把这段代码放在哪里?它告诉我解析器错误消息:System.Web.UI.WebControls.DataControlFieldCollection 必须具有“System.Web.UI.WebControls.DataControlField”类型的项目。 “asp:CompareValidator”的类型为“System.Web.UI.WebControls.CompareValidator”。
    猜你喜欢
    • 2022-11-20
    • 2018-02-17
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2016-01-26
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多