【问题标题】:Using ValidationGroup with Sharepoint EditorPart将 ValidationGroup 与 Sharepoint EditorPart 一起使用
【发布时间】:2011-05-25 22:25:20
【问题描述】:

我编写了一个 Sharepoint 2007 Web 部件,它需要在用户表单和管理员表单 (EditorPart) 中进行验证。

我正在使用 InputFormRegularEdpressionValidator 进行这样的验证:

tb = new TextBox();
tb.ID = "myID";

InputFormRegularExpressionValidator validTb = new 
                                 InputFormRegularExpressionValidator();
validTb.ControlToValidate  = tb.ID;
validTb.ValidationExpression = myRegExp;
validTb.ValidationGroup = "AdminInput";

this.Controls.Add(tb);
this.Controls.Add(validTb);

我已经定义了两个验证组 - 一个用于 UserInput,另一个用于 AdminInput。我在用户表单中定义了一个提交按钮,并将这个ValidationGroup设置为UserInput,

但是,我不知道如何将 ValidationGroup AdminInput 应用到编辑器部分的 Ok 和 Apply 按钮,或者验证这些字段。

如何在单击确定/应用时触发 EditorPart 字段的验证与面向公众的 Web 部件中的字段验证分开?

【问题讨论】:

    标签: c# .net sharepoint sharepoint-2007


    【解决方案1】:

    在这种情况下,我建议使用下面链接中提供的解决方案

    How to set an error message from EditorPart when ApplyChanges returns false?

    string _errorText;
    
    public override bool ApplyChanges()
    {
    
    
     if (System.Text.RegularExpressions.Regex.IsMatch(validTb.Text, myRegExp))
                {
            //write you code here in case of valid input
                    return true;
                }
                else
                {
            _errorMessage = "Not A valid String";
                    return false; 
                }
    
    }
    
    protected override OnPreRender(EventArgs e)
    {
      if (!string.IsNullOrEmpty(_errorText))
      {
        this.Zone.ErrorText =  _errorText;
      }      
      base.OnPreRender(e);
    }
    

    【讨论】:

    • 我猜你的意思是链接到stackoverflow.com/questions/2921491/… 而不是你的博客。请编辑答案。
    • 但是由于没有触发验证(至少据我所知),因此不会产生错误。问题是关于如何在 EditorPart 中触发验证,而不是如何处理验证的结果。
    • 我的意思是,您可以在验证后使用 return true 和 false ,您可以在代码中处理,您可以使用 this.Zone.ErrorText ="xyz" 来显示验证消息。跨度>
    • 是的 - 我明白了,但它没有回答我问的问题,即如何首先触发验证。
    • 不 - 你给我的解决方案是完全不同的问题的解决方案。它不能帮助我触发验证,只能处理已触发验证的结果。也许我不明白你在说什么——在这种情况下,也许你可以用一种符合我问题的方式来重申你的答案。
    猜你喜欢
    • 2010-09-09
    • 2010-11-22
    • 2011-01-08
    • 2011-10-13
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多