【问题标题】:Validation in WebFormsWebForms 中的验证
【发布时间】:2012-05-04 19:20:26
【问题描述】:

我正在开发一个 Intranet 桌面应用程序,并且大部分功能都需要一个 Web 界面来配合它。第一次迭代的桌面部分非常完整,现在我必须在 WebForms 中完成。我已经有一年多没有接触过 WebForms 并且想知道......

如果我有一个带有一些文本框的表单,我意识到我可以使用 javascript 和诸如此类的代码进行验证,但是有没有一种方法可以像在 WinForms 中那样做到这一点? WinForms 文本框有一个验证方法,当用户离开文本框时会调用该方法。在桌面应用程序上,我将其设置为设置在属性设置中具有验证的类实例属性。有没有办法我可以在 WebForms 中做同样的事情,或者我必须在客户端再次将其全部写出来? ASP TextBoxes 有一个 textchanged 方法,但我没有看到验证。我想你们会说我必须在客户端再写一遍,但希望如此。

【问题讨论】:

    标签: .net winforms validation webforms


    【解决方案1】:

    您不必从头开始。 Asp.Net 有几个内置的验证器来帮助处理数据类型、范围、字段之间的比较、必填字段,甚至是错误摘要。 See this link for more info

    您还可以通过 CustomValidator 控件在此验证模型中使用您自己的 javascript。

    w3schools.com 有一个非常好的教程here

    已编辑:避免回发

    您可以使用 UpdatePanel 包装您的 TextBox 以使用 Ajax,或者如果您想提高效率,您可以使用 jQuery 调用 WebMethod 并设置对象。示例:

    [WebMethod(EnableSession = true)]    
    public static  string MyWebMethod(String someVar)
    { 
        HttpContext.Current.Session["someVar"] = someVar;
    }
    

    在客户端:

     $.ajax({
            type: "POST",
            url: 'Page.aspx/MyWebMethod',
            data: "{ someVar: 'valueFromTextBox' }",
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                //alert(data);
            }
        });
    

    【讨论】:

    • 当我离开带有这些验证控件之一的文本框时,是否可以设置 c# 对象属性?
    • 我找到了一种方法来做我想做的事,使用 TextChanged 事件和 AutoPostBack = True 作为文本框。它做了我想要的,但现在我只需要弄清楚如何在不导致页面刷新的情况下做到这一点。
    • 您可以使用 UpdatePanel 包装您的 TextBox 以使用 Ajax,或者如果您想提高效率,您可以使用 jQuery 调用 WebMethod 并设置对象。
    • 是的,我正在阅读有关使用 jQuery AJAX 的 WebMethod 的信息,这正是我正在寻找的。唯一的问题是我在表单级别声明了一个类对象,但似乎无法从 WebMethod 中访问对象变量......如果我能弄清楚如何访问它,那么我会很高兴。跨度>
    • 只需将我的变量声明为静态,她就可以工作。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多