2010-12-15 7 views
2

Ich habe einen Sharepoint 2007-Webpart geschrieben, der eine Validierung sowohl im Benutzerformular als auch im Admin-Formular (EditorPart) erfordert.Verwenden von ValidationGroup mit Sharepoint EditorPart

ich InputFormRegularEdpressionValidator bin mit der Validierung wie dies zu tun:

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

ich zwei Validierungsgruppen definiert haben - eine für die Userinput und die andere für AdminInput. Ich habe eine Übergabeschaltfläche im Benutzerformular definiert und diese ValidationGroup auf UserInput,

festgelegt. Ich kann jedoch nicht herausfinden, wie die ValidationGroup AdminInput auf die OK- und Apply-Schaltflächen im Editor-Teil angewendet oder anderweitig validiert werden kann Felder.

Wie löst man die Validierung von EditorPart-Feldern beim Klicken auf Ok/Anwenden getrennt von der Validierung von Feldern im öffentlichen Webpart aus?

Antwort

2

In diesem Fall Ich verwende die Lösung in Verbindung unten

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

zur Verfügung gestellt würde vorschlagen, ich denke, Sie zu http://stackoverflow.com/questions/2921491/how- verbinden soll Bei der Anwendung "Änderungen anwenden" gibt es eine Fehlermeldung, die von einem Redakteur ableitet: "returns-false" anstelle des Blogs. Bitte bearbeiten Sie die Antwort. – dunxd

+0

Da aber die Validierung nicht ausgelöst wird (zumindest soweit ich das beurteilen kann), wird kein Fehler generiert. Die Frage ist, wie die Validierung im EditorPart ausgelöst wird und nicht, wie mit den Ergebnissen der Validierung umgegangen wird. – dunxd

+0

Mein Punkt zu sagen war, dass Sie nach der Validierung, die Sie in Ihrem Code behandeln können, Rückgabe True und False verwenden können, und Sie können this.Zone.ErrorText = "xyz" Validierungsmeldung anzuzeigen. –