Sharepoint项更新的事件取消的事件的回editform页?
-
20-09-2019 - |
题
我有一个事件接收,用于内容类型,来验证某些数据在ItemUpdating事件。如果我取消的事件(一些数据不是有效的,例如),我的性取消以真实的:
properties.Cancel = true;
properties.ErrorMessage = "...";
SharePoint取消的新事件的确定,但显示了标准SharePoint错误的网页(与指定的信息)。唯一的问题是,我已经有了一个申诉,这并不是实际上非常有用的-我们应该回到EditForm页,以便详细信息可以更新。
有没有人做到了这一点,是否有一个简单的方法吗?唯一的建议,我是,我就可以实现我自己的错误页,但是,听起来相当重解决一个(在理论上)简单的过程。
解决方案
您可以尝试在输出的ErrorMessage HTML代码(其包括JavaScript的为好)。但即使你做的,问题是你有没有安全的方式返回给用户输入的数据。要么你做一个HTTP / 301重定向,然后它是一个新的页面负载,或者你让客户去history.back()
与JavaScript,然后在浏览器可能会重新加载页面。
这样做的正式方式是创建一个列表定义和自定义列表模板。然后就可以编辑编辑表单模板,并根据需要包括尽可能多的ASP.Net验证控件。然后,实现服务器端逻辑,因为你需要。本文介绍了该技术: http://msdn.microsoft.com/en-我们/库/ aa543922.aspx
编辑:要附加特定的contentType的编辑自定义控制,添加一个XmlDocuments部分您的ContentType定义。例如,像这样的
<ContentType
..........
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<FormTemplates xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<Display>ContentTypeName_DispForm</Display>
<Edit>ContentTypeName_EditForm</Edit>
<New>ContentTypeName_NewForm</New>
</FormTemplates>
</XmlDocument>
</XmlDocuments>
.......
然后创建您自己的yoursolution_controltemplates.ascx
文件,其中包含还有这样的块:“
<SharePoint:RenderingTemplate ID="ContentTypeName_DispForm" runat="server">
<Template>
<!-- put whatever controls you need here, we typically create a
separate custom control which implements everything-->
</Template>
</SharePoint:RenderingTemplate>
其他提示
你可以试图重定向使用CopyUtil: http://weblogs.asp.net/jan/archive/2008/02/26/copyutil-aspx-a-little-sharepoint-gem.aspx
link="http://yoursite/_layouts/CopyUtil.aspx?Use=id&Action=dispform&ItemId=X&ListId=X&WebId=X&SiteId=X";
页。响应。Redirect(链接)
也许这会的工作