在sharepoint2007里 designer制作的工作流,生成时审批页面是aspx的页面
但在2010里却变为了infopath的页面。
在aspx里面我很容易就可以将item的信息显示出来
在infopath里面加item信息可能么?答案是有点难,或者是不太可能,反正我没搞定,希望高人可以指点。
既然看起来是不太可能的事,那怎么办呢。
在编辑工作流任务时是个弹出窗口,用ie8,查看源文件时,就发现这个页面实际上layouts下的页面WrkTaskIP.aspx
这个页面是网站通用页面。infopath的表单就是被镶嵌在这个画面中。修改它,会将影响到整个farm。
不过我选择了修改它,这样可以将所有工作流审批画面中都带有item的信息。
1. 下一个最新的jquery包。放在layouts目录下,将文件名更改为jquery.js
2. 在wrkTaskIP.aspx页面中找到<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">这个内容区域
3. 在区域中有个class=“ms-informationbar” 的table
<table class="ms-informationbar" style="margin-top: 10px;" border="0" cellpadding="2" cellspacing="0" width="100%">
4. 在这个table的下面添加一个iframe
<iframe width="100%" height="300px" id="showItemDisplayForm">
</iframe>
5. 在区域中找到<% SPHttpUtility.NoEncode(m_pageDescription,Response.Output); %>这段代码在工作流审批画面中用来显示item的标题,同时也会带有item的链接地址,可以在新窗口中打开item的display画面。我们将利用这段代码,来完成显示item的display画面。在这段代码对应的td上添加一个Id=“itemLink”
<td id="itemLink">
<% SPHttpUtility.NoEncode(m_pageDescription,Response.Output); %>
</td>
6. 在区域的最后面添加一段js代码
7. 完成看效果