3

有人给我看一个 ext.net 验证的例子吗?我想混合使用 asp.net 和 ext.net 验证。或者仅使用 ext.net 验证。

我已经看过这些示例http://examples.ext.net/#/Form/Validation/Custom_VType/http://examples.ext.net/#/Form/FormPanel/Validation/但这还不够。

另外,我想知道为什么代码底部不起作用。它抛出一个异常

“在验证发生之前不能调用 Page.IsValid。应该在事件处理程序中查询具有 CausesValidation=True 并启动回发的控件,或者在调用 Page.Validate 之后”

<script runat="server">

        void Button_Click(object sender, EventArgs e) {
            // Display whether the page passed validation.
            if (Page.IsValid) {
                Label1.Text = "Page is valid.";
            }
            else {
                Label1.Text = "Page is not valid!";
            }
        }

        void ServerValidation(object source, ServerValidateEventArgs args) {
            try {
                // Test whether the value entered into the text box is even.
                int i = int.Parse(args.Value);
                args.IsValid = ((i % 2) == 0);
            }
            catch (Exception ex) {
                args.IsValid = false;
            }
        }

    </script>
    <ext:Label ID="Label1" runat="server" Text="Enter an even number:" />
    <br />
    <ext:TextField ID="TextField1" runat="server" />
    <asp:CustomValidator runat="server" ControlToValidate="TextField1" OnServerValidate="ServerValidation"
        ErrorMessage="Not an even number!" />
    <ext:Button runat="server" Text="Validate" >
        <DirectEvents>
            <Click OnEvent="Button_Click" />
        </DirectEvents>
    </ext:Button>
4

2 回答 2

1

这个样品怎么样?在 pastebin 中:http: //pastebin.com/hGCjnNqh

<script runat="server">
protected override void OnLoad(EventArgs e) {
    base.OnLoad(e);

    Page.Validate();

}

void ServerValidation(object source, ServerValidateEventArgs args)
{
    try
    {
        // Test whether the value entered into the text box is even.
        int i = int.Parse(args.Value);
        args.IsValid = ((i % 2) == 0);
    }
    catch (Exception ex)
    {
        args.IsValid = false;
    }
}

void Button_Click(object sender, EventArgs e) {
    // Display whether the page passed validation.
    if (Page.IsValid) {
        Label1.Text = "Page is valid.";
    } else {
        Label1.Text = "Page is not valid!";
    }
}

<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Label ID="Label1" runat="server" Text="Enter an even number:" />
<br/>
<ext:TextField ID="TextField1" runat="server" />
<asp:CustomValidator ID="CustomValidator1"
    runat="server"
    ControlToValidate="TextField1"
    OnServerValidate="ServerValidation" 
    ErrorMessage="Not an even number!" />
<ext:Button ID="Button1" runat="server" Text="Validate" AutoPostBack="false" CausesValidation="true">
    <DirectEvents>
        <Click OnEvent="Button_Click" />
    </DirectEvents>
</ext:Button>
于 2011-09-02T05:36:15.353 回答
0

在 ext.net formpanel 中使用 ext.net 组件,您不需要使用 asp net 验证。

于 2017-01-07T04:52:35.620 回答