我在我的CSLA业务对象的StringLenthValidator
字段中添加了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 :(得分:0)
您在哪里设置PropertyProxyValidator
的ID?您应该进行设置,然后拨打ssve.TargetControlID = ppvNewName.ID
。
如果您完全动态地执行此操作(除了正确连接所有内容之外),我认为您必须将PropertyProxyValidator和ServerSideValidationExtender添加到UpdatePanel。
也许Adding controls dynamically to an UpdatePanel in ASP.NET AJAX可以为此提供一些帮助。