向 SharePoint Webpart 添加必填字段验证器
Posted
技术标签:
【中文标题】向 SharePoint Webpart 添加必填字段验证器【英文标题】:Adding a required field validator to a SharePoint webpart 【发布时间】:2010-10-15 05:13:01 【问题描述】:我正在为 MOSS 2007 编写一个 webpart。我需要验证该 webpart 中的一个文本字段,或者我正在使用必填字段验证器。
我正在创建必填字段验证器,如下所示:
vldProjectError = new RequiredFieldValidator();
vldProjectError.ForeColor = Color.Red;
vldProjectError.ErrorMessage = Resources.LABEL_PROJECT_ERROR;
vldProjectError.ControlToValidate = txtProjectName.ClientID;
vldProjectError.Display = ValidatorDisplay.Dynamic;
this.Controls.Add(vldProjectError);
上面的代码 sn-p 在 CreateChildControls() 覆盖。 当我打开此 Web 部件页面时,我在 SharePoint 中收到一般错误消息。 我无法通过调试来捕获错误。
我注意到异常是在 CreateChildControls() 之后和 Render() 方法之前抛出的,因为调试器从不进入 Render() 方法
知道如何在 sharepoint webparts 中使用验证器吗?我有什么遗漏吗?
【问题讨论】:
【参考方案1】:我能够解决问题。
我们应该使用
txtProjectName.ID = "txtProjectName";
vldProjectError.ControlToValidate = txtProjectName.ID;
而不是
vldProjectError.ControlToValidate = txtProjectName.ClientID;
这应该在 CreateChidControls() 方法中完成。
【讨论】:
【参考方案2】:我会尝试两件事:
-
在开发 SharePoint 时启用错误输出绝对有帮助,请关注 this post 启用它。
尝试在 Render 方法中分配 ControlToValidate 属性,而不是在 CreateChildControls 中。或者至少在将 txtProjectName 添加到控件集合之后执行此操作。
【讨论】:
【参考方案3】:您是否尝试在 web.config 中向浏览器启用错误输出?也许这会给你一个更详细的信息。
【讨论】:
【参考方案4】:在验证器控件方面,我遇到了与您相同的问题。已验证控件的 controlId 属性为 null,直到您将其添加到 Web 部件的控件集合中。因此,必须在此行之后配置验证器:
this.Controls.Add(txtProjectName);
检查此调试您的 Web 部件并查看已验证控件的 ClientId 属性。
【讨论】:
以上是关于向 SharePoint Webpart 添加必填字段验证器的主要内容,如果未能解决你的问题,请参考以下文章
错误:名称在当前上下文中不存在(Webpart、C#、Visual Studios、SharePoint 2010)
如何在 Sharepoint Wiki 页面上添加 WebPart?
【高分悬赏】在sharepoint里添加webpart,webpart读取列表中添加的信息并显示,怎么写
如何将 WebPart 添加到 SharePoint 网站中的所有页面?
【高分悬赏】在sharepoint里添加webpart,webpart读取列表中添加的信息并显示,怎么写
powershell 安装sharepoint webpart:这个脚本1)备份当前部署的webpart,2)删除以前的webpart,3)添加新的wsp,4)dep