2010-12-15 74 views
2

我寫了一個Sharepoint 2007 Web部件,它需要在用戶窗體和管理窗體(EditorPart)中進行驗證。使用ValidationGroup與Sharepoint 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字段的有效性?

回答

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- to-set-an-error-message-from-editorpart-when-applychanges-returns-false而不是你的博客。請編輯答案。 – dunxd 2010-12-16 11:15:22

+0

但由於驗證沒有被觸發(至少據我所知),不會產生錯誤。問題是關於如何在EditorPart中觸發驗證,而不是如何處理驗證結果。 – dunxd 2010-12-16 11:16:40

+0

我的觀點是,您可以在驗證後使用return true和false來代碼處理,並且可以使用this.Zone.ErrorText =「xyz」來顯示驗證消息。 – 2010-12-16 11:40:02

相關問題