如何在自定义按钮中重新创建Sharepoint快速编辑按钮功能

时间:2018-01-25 21:20:18

标签: javascript sharepoint sharepoint-online

为了造型,我摆脱了我网站上的O365栏和编辑栏(#s4-ribbonrow)。我希望用户仍然能够使用"快速编辑"按钮在选择列表项时提供。如何在我的页面上的自定义按钮中实现相同的功能?

1 个答案:

答案 0 :(得分:1)

打开SharePoint快速编辑模式以进行查看

SharePoint使用此方法:

EnsureScriptParams('inplview', 'InitGridFromView', 'VIEW ID');return false;

所以,你的样本锚元素:

<a onclick="EnsureScriptParams('inplview', 'InitGridFromView', SP.ListOperation.ViewOperation.getSelectedView());return false;">TEST</a>

使用SP.ListOperation.ViewOperation.getSelectedView()获取较旧共享点中的视图ID,或使用SharePoint Online中的_spPageContextInfo.viewId

打开SharePoint编辑项对话框

使用SP.ListOperation.Selection.getSelectedItems()从视图中获取所选项目。

单击按钮处理程序应如下所示:

if (SP.ListOperation.Selection.getSelectedItems().length === 1) {
    var itm = SP.ListOperation.Selection.getSelectedItems()[0];
    var _url = _spPageContextInfo.siteServerRelativeUrl + '/' + _spPageContextInfo.layoutsUrl + '/listform.aspx?PageType=6&ListId=' +_spPageContextInfo.pageListId + '&ID=' + itm.id;
    console.log(_url);
    var options = {
        title: "Edit item",
        width: 500,
        height: 600,
        showClose: true,
        allowMaximize: true,
        autoSize: true,
        url: _url
    };
    SP.UI.ModalDialog.showModalDialog(options); 
}

最难的部分是生成正确的网址:

PageType=6表示editform,4的值表示发送

要正确链接到listform.aspx页面,您需要使用一些_spPageContextInfo属性,例如list id,server relative url和layouts folder url