情况
在Sharepoint 2010中,我可以点击列表中的项目:
然后在该页面中显示“读取/编辑”视图:
我的目标
我在另一个页面上有一个WebPart ,其中我显示了来自此页面和其他几个列表的一些项目,我想为每个列表添加一个读取或编辑链接。
我该怎么做?
我正在搜索像EditListItem('ItemId', 'ListId', ...)
这样的函数,它会打开编辑div窗口。
我尝试了什么
Sharepoint在上面的“测试项目”上生成的标签是这样的:
<a onfocus="OnLink(this)"
href="http://{mysharepointsite}/_layouts/listform.aspx
?PageType=4
&ListId={D0FDB54F-1DDF-4C5E-865B-ABDE55C1125}
&ID=1
&ContentTypeID=0x010800ED5176D13CCEFC4AA8D62A79985DE892"
onclick="EditLink2(this,49);return false;" target="_self">Test Item</a>
所以我在Sharepoint JS文件中挖掘了一下,发现EditLink2
调用_EditLink2
从上下文调用ShowPopup
(49
)是上下文no和似乎要充满活力。
我试图伪造上下文,但有数十亿个变量,我认为我无法让它稳定运行。
答案 0 :(得分:4)
在那个需要打开对话框的页面上,只需编写简单的JS函数来显示modal dialog,例如:
function openMyItemDialog( itemId ) {
var options = {
url: "http://{mysharepointsite}/_layouts/listform.aspx?PageType=4&ListId={D0FDB54F-1DDF-4C5E-865B-ABDE55C1125}&ID=" + itemId + "&ContentTypeID=0x010800ED5176D13CCEFC4AA8D62A79985DE892&IsDlg=1",
width: 500,
height: 500,
title: "Item view/edit"
};
SP.UI.ModalDialog.showModalDialog( options );
}
请注意网址<{1}} param
然后修改显示项目的href链接。
例如:
&IsDlg=1
将<a href="#" onclick="openMyItemDialog(35)">Test item</a>
替换为您商品的35
答案 1 :(得分:0)
我知道这是一个老问题,但还有另一种方法可以实现OP的目标。
在XSLT ViewWebPart中,有一个名为$ ViewCounter的全局参数。 这是_EditLink2函数所需的上下文编号。
因此,为了向显示表单添加链接并在对话框中打开它,请将项目包装在<a>
标记中,如下所示:
<a href="{$HttpVDir}/_layouts/listform.aspx?PageType=4&ListId={$List}&ID={$thisNode/@ID}" onclick="EditLink2(this,{$ViewCounter});return false;">your item</a>
注意变量$ HttpVDir,$ List,$ thisNode / @ ID和$ ViewCounter(不需要对任何值进行硬编码)。