2010-07-02 44 views
0

與ServerSideValidationExtender使用PropertyProxyValidator我添加了一個StringLenthValidator屬性我CSLA業務對象的name領域,與我試圖使用AJAX PropertyProxyValidator到服務器驗證該名稱字段中的字符串輸入。如何在運行時

我能夠在運行時創建控件並且工作正常,但它沒有使用PropertyProxyValidator報告我在Business Object屬性中指定的錯誤消息,而是在下面的消息中引發錯誤:

對象是無效的,不能 保存

代碼背後支招:

PropertyProxyValidator ppvNewName = new PropertyProxyValidator(); 
ppvNewName.PropertyName = "Name"; 
ppvNewName.ResourceClass = "MyResource"; 
ppvNewName.SourceTypeName = "SourceType"; 
ppvNewName.ControlToValidate = "txtNewName"; 
ppvNewName.Display = Dynamic; 
ppvNewName.DisplayMode = List; 
AjaxControlToolkit.WCSFExtensions.ServerSideValidationExtender ssve = new AjaxControlToolkit.WCSFExtensions.ServerSideValidationExtender(); 

ssve.TargetControlID = "ppvNewCategoryName"; 
+0

你的代碼不能編譯:'Display'和'DisplayMode'屬性都應該是枚舉。此外,在「PropertyProxyValidator」上沒有名爲'ResourceClass'的屬性。 – 2010-07-02 18:23:15

+0

你可以看看這篇文章:http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=78。它演示瞭如何使用簡單的擴展方法向頁面添加一個「PropertyProxyValidator」。 – Steven 2010-08-17 10:56:55

回答

0

你在哪裏設置PropertyProxyValidator的ID?您應該設置它,然後致電ssve.TargetControlID = ppvNewName.ID

如果您完全動態地完成此操作(除了正確連接所有東西),我認爲您將不得不將您的PropertyProxyValidator和ServerSideValidationExtender添加到UpdatePanel。

也許Adding controls dynamically to an UpdatePanel in ASP.NET AJAX可能對此有所幫助。

+0

我設置了ID並遵循了所有建議,但仍然是相同的問題。它仍然沒有使用PropertyProxyvalidator來顯示我的業務對象屬性中指定的錯誤,但根據我指定的長度驗證字符串工作正常。 – EarlFlamiano 2010-07-03 06:44:48