代码之家  ›  专栏  ›  技术社区  ›  to StackOverflow

ASP.NET GridView-如何以声明方式启用验证

  •  1
  • to StackOverflow  · 技术社区  · 14 年前

    是否可以在ASP.NET网格视图中纯声明性地启用验证?

    我试过的:

    • 绑定到已定义SelectMethod和UpdateMethod的ObjectDatasource的GridView

    • GridView包含一些只读边界字段列和一个模板字段,其中EditTemplate包含一个文本框和一个RegularExpressionValidator,它只允许在文本框中输入数字。

    • GridView还包含一个命令字段,其中ShowEditButton=true,CausesValidation=true。

    如果单击“编辑”,输入一个无效值,然后单击“保存”,则会有一个回发,并在服务器中引发异常(输入字符串的格式不正确)。

    当然,我可以通过向服务器上的rowupdating事件处理程序添加验证代码来避免这种情况(请参见下文),但是否有任何声明性方法可以强制在不添加此代码的情况下进行验证?

    protected void MyGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        Page.Validate("MyValidationGroup");
        if (!Page.IsValid)
        {
            e.Cancel = true;
        }
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Raj Kaimal    14 年前

    你需要那个代码。

    除了依赖客户端验证,在处理回发事件时调用page.isvalid也很重要。

    http://weblogs.asp.net/rajbk/archive/2007/03/15/page-isvalid-and-validate.aspx

    更新

    为了避免使用样板代码,可以让所有页面从基类继承,所有用户控件从不同的基类继承。基类将具有公共逻辑(如上面的逻辑)。然后,您要么手动连接它,要么遍历控制树并自动连接事件。

    我个人会坚持你现在拥有的东西。