在《定制Sharepoint 2010表单页面(DispForm.aspx)》中解决了在定制过程中遇到的错误。在定制中使用SPD写RenderingTemplate,但是在页面自定义后发现,显示框上面始终有这么一块东西,不符合国人的习惯,干掉它!隐藏dispform.aspx页面的toolbar!
在dispform页面中,第一行代码是:
<%@ Page language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" meta:webpartpageexpansion="full" %>
把default.master改成custom.master,这时再查看,发现页面已经采用了自定义的母版页,但是toolbar依然在,并且看起来更加的不伦不类,这样不行。
那就为表单页面也整一个母版页吧,复制一份原来的母版页,把不需要的地方给隐藏了。我把这个母版页重命名成ListForm2010.master,然后再把DispForm.aspx复制一份,然后我把复制的这个重命名成IndexDispForm.aspx,然后打开编辑,第一行的MasterPageFile="~masterurl/default.master"改成MasterPageFile="/_catalogs/masterpage/ListForm2010.master",这样页面就采用了自定义模板。
最后,再让公告在弹出框中显示,这个是定义内容查询器标题了,详细可以参看这篇博客《moss自定义内容查询webpart》,这个上面没有讲到怎样在弹出框中显示通知公告内容。弹出框的实现靠的还是JS。在新建的标题样式中插入这么一段JS:
<script type="text/javascript">
var options={
title: "公告",
allowMaximize: true,
showClose: true,
width: 1020,
dialogReturnValueCallback: silentCallback
};
function open(id) {options.url=id;
SP.UI.ModalDialog.showModalDialog(options);
}
function silentCallback(dialogResult, returnValue) {
}
function refreshCallback(dialogResult, returnValue) {
SP.UI.Notify.addNotification('Operation Successful!');
SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
}
</script>
标题的链接就要写成<a href="javascript:open('/Lists/1/IndexDispForm.aspx?ID={@ID}')" title="{$DisplayTitle}" target="_self">
保存签入后点击公告标题,看最终效果。