Javascript 如何编辑其他页面上的列表项
形势 在Sharepoint 2010中,我可以单击列表中的项目: 然后,读取/编辑视图将在该页面中可见: 我的目标 我在另一个页面上有一个Web部件,其中显示了来自此列表和其他几个列表的一些项目,我想为每个列表添加一个阅读或编辑链接 我该怎么做 我正在搜索一个类似于Javascript 如何编辑其他页面上的列表项,javascript,sharepoint-2010,Javascript,Sharepoint 2010,形势 在Sharepoint 2010中,我可以单击列表中的项目: 然后,读取/编辑视图将在该页面中可见: 我的目标 我在另一个页面上有一个Web部件,其中显示了来自此列表和其他几个列表的一些项目,我想为每个列表添加一个阅读或编辑链接 我该怎么做 我正在搜索一个类似于EditListItem('ItemId','ListId',…)的函数,它将打开edit div窗口 我试过什么 Sharepoint在上面的“测试项”上生成的a标记如下所示: <a onfocus="OnLink(th
EditListItem('ItemId','ListId',…)
的函数,它将打开edit div窗口
我试过什么
Sharepoint在上面的“测试项”上生成的a标记如下所示:
<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>
<a href="{$HttpVDir}/_layouts/listform.aspx?PageType=4&ListId={$List}&ID={$thisNode/@ID}" onclick="EditLink2(this,{$ViewCounter});return false;">your item</a>
因此,我对Sharepoint JS文件进行了深入研究,发现EditLink2
调用\u EditLink2
从上下文调用ShowPopup
(49
)是上下文编号,似乎是动态的
我试图伪造上下文,但有数十亿个变量,我想我无法使其稳定工作。在需要打开对话框的页面上,只需编写简单的JS函数即可显示,例如:
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 );
}
<a href="#" onclick="openMyItemDialog(35)">Test item</a>
请注意url处的&IsDlg=1
参数
然后修改显示项目的href链接
例如:
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 );
}
<a href="#" onclick="openMyItemDialog(35)">Test item</a>
在需要打开对话框的页面上,将项目的
35
替换为ID
,只需编写简单的JS函数即可显示,例如:
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 );
}
<a href="#" onclick="openMyItemDialog(35)">Test item</a>
请注意url处的&IsDlg=1
参数
然后修改显示项目的href链接
例如:
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 );
}
<a href="#" onclick="openMyItemDialog(35)">Test item</a>
将您物品的
35
替换为ID
我知道这是一个老问题,但有另一种方法可以实现OP的目标
在XSLT ViewWebPart中,有一个名为$ViewCounter的全局参数。
这是_EditLink2函数所需的上下文编号
因此,为了向显示表单添加链接并在对话框中打开它,请将该项包装为
请注意变量$HttpVDir、$List、$thisNode/@ID和$ViewCounter(无需硬编码任何值)。我知道这是一个老问题,但有另一种方法可以实现OP的目标 在XSLT ViewWebPart中,有一个名为$ViewCounter的全局参数。 这是_EditLink2函数所需的上下文编号 因此,为了向显示表单添加链接并在对话框中打开它,请将该项包装为
注意变量$HttpVDir、$List、$thisNode/@ID和$ViewCounter(无需硬编码任何值)