Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ValidationGroup与Sharepoint EditorPart一起使用_C#_.net_Sharepoint_Sharepoint 2007 - Fatal编程技术网

C# 将ValidationGroup与Sharepoint EditorPart一起使用

C# 将ValidationGroup与Sharepoint EditorPart一起使用,c#,.net,sharepoint,sharepoint-2007,C#,.net,Sharepoint,Sharepoint 2007,我已经编写了一个Sharepoint 2007 web部件,它需要在用户表单和管理表单(EditorPart)中进行验证 我使用InputFormRegularEdpressionValidator执行如下验证: tb = new TextBox(); tb.ID = "myID"; InputFormRegularExpressionValidator validTb = new InputFormRegularExpres

我已经编写了一个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按钮,或者以其他方式验证这些字段


在面向公众的web部件中,单击“确定/应用”与字段验证分开时,如何触发EditorPart字段的有效性?

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


我猜你是想链接到而不是你的博客。请编辑答案。但由于没有触发验证(至少据我所知),因此不会生成错误。问题是如何在EditorPart中触发验证,而不是如何处理验证结果。我想说的是,您可以在验证后使用return true和false,您可以在代码中处理它们,并且可以使用this.Zone.ErrorText=“xyz”显示验证消息。是的-我看到了,但它没有回答我问的问题,即如何首先触发验证。不-你给我的解决方案是一个完全不同的问题的解决方案。它不能帮助我触发验证,只能处理已经触发的验证的结果。也许我不明白你在说什么——在这种情况下,也许你可以用一种解决我问题的方式重申你的答案。
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);
}