2010-12-15 7 views
2

ユーザーフォームと管理フォーム(EditorPart)の両方で検証が必要なSharepoint 2007 Webパーツを作成しました。Sharepoint EditorPartでValidationGroupを使用する

私はこのような検証を行うにInputFormRegularEdpressionValidatorを使用しています:私は2つの検証グループに定義した

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

- AdminInput用変数UserInput用とその他を。私はユーザフォームにサブミットボタンを定義し、このValidationGroupをUserInputに設定しました。

しかし、私はValidationGroup AdminInputをエディタパートのOKボタンとApplyボタンに適用する方法、フィールド。

パブリックに面するWebパーツのフィールドの検証とは別に、[OK /適用]をクリックしたときにEditorPartフィールドの検証をどのようにトリガしますか?この場合

答えて

2

私は

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

下のリンクで提供される解決策は、私はあなたがhttp://stackoverflow.com/questions/2921491/how-にリンクすることを意図推測使用することをお勧めしますあなたのブログではなく、エディタからのエラーメッセージを編集するか、apply-when-changeschanges-returns-falseを返します。回答を編集してください。 – dunxd

+0

しかし、検証は(少なくとも私が知る限り)起動されていないので、エラーは生成されません。問題は、検証結果をどのように処理するかではなく、EditorPartで検証をトリガする方法です。 – dunxd

+0

あなたのコードで扱うことができる検証の後で真と偽を返すことができ、this.Zone.ErrorText = "xyz"を使用して検証メッセージを表示することができます。 –

関連する問題