我编写了一个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应用于“编辑器”部分中的“确定”和“应用”按钮,否则无法验证这些字段。

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

最佳答案

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

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);
}

关于c# - 将ValidationGroup与Sharepoint EditorPart一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4450571/

10-09 03:08