【问题标题】:How to use PropertyProxyValidator with ServerSideValidationExtender at runtime如何在运行时将 PropertyProxyValidator 与 ServerSideValidationExtender 一起使用
【发布时间】:2010-07-02 12:22:36
【问题描述】:

我已向我的 CSLA 业务对象的 name 字段添加了一个 StringLenthValidator 属性,我正在尝试使用 AJAX PropertyProxyValidator 来服务器验证该名称字段的字符串输入。

我能够在运行时创建控件并且它工作正常,但它没有使用PropertyProxyValidator 报告我在我的业务对象属性中指定的错误消息,而是引发错误并显示以下消息:

对象无效且不能 保存

下面的代码:

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

【问题讨论】:

  • 您的代码无法编译:DisplayDisplayMode 属性都应该是枚举。此外,PropertyProxyValidator 上没有名为 ResourceClass 的属性。
  • 你可以看看这篇文章:cuttingedge.it/blogs/steven/pivot/entry.php?id=78。它展示了如何使用简单的扩展方法将PropertyProxyValidator 添加到页面。

标签: c# asp.net ajax enterprise-library


【解决方案1】:

PropertyProxyValidator 的 id 在哪里设置?你应该设置它,然后调用ssve.TargetControlID = ppvNewName.ID

如果您完全动态地执行此操作(除了正确连接所有内容),我认为您将不得不将 PropertyProxyValidator 和 ServerSideValidationExtender 添加到 UpdatePanel。

也许Adding controls dynamically to an UpdatePanel in ASP.NET AJAX 可以对此有所帮助。

【讨论】:

  • 我设置了 ID 并遵循了您的所有建议,但仍然是同样的问题。它仍然没有使用 PropertyProxyvalidator 来显示我的业务对象属性中指定的错误,但是根据我指定的长度验证字符串可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
相关资源
最近更新 更多