Javascript 创建一个;添加新项目";SharePoint 2010上的按钮

Javascript 创建一个;添加新项目";SharePoint 2010上的按钮,javascript,sharepoint,sharepoint-2010,Javascript,Sharepoint,Sharepoint 2010,我正在创建一个SharePoint网站,需要一些帮助。在我的主页上,我想有一个按钮,有人可以点击添加信息,点击按钮后,我想一个模态窗口打开。在窗口打开后,它应该提示人们输入信息并将其保存到后台某个位置的列表中。我在谷歌上搜索了一下,没找到这个。到目前为止,我在谷歌上找到了这个javascript,但我似乎无法让它工作。您将看到下面的javascript,在下面您将找到一个imgur链接,以更好地显示我试图实现的目标 函数OpenNewForm(){ var listName='MyListU

我正在创建一个SharePoint网站,需要一些帮助。在我的主页上,我想有一个按钮,有人可以点击添加信息,点击按钮后,我想一个模态窗口打开。在窗口打开后,它应该提示人们输入信息并将其保存到后台某个位置的列表中。我在谷歌上搜索了一下,没找到这个。到目前为止,我在谷歌上找到了这个javascript,但我似乎无法让它工作。您将看到下面的javascript,在下面您将找到一个imgur链接,以更好地显示我试图实现的目标


函数OpenNewForm(){
var listName='MyListUrl';
var期权=
{
url:L_Menu_BaseUrl+“/Lists/“+listName+”/EditForm.aspx?ID=1&IsDlg=1”,
dialogReturnValueCallback:Function.createDelegate(null,newFormClosedCallback)
};
SP.UI.ModalDialog.showModalDialog(选项);
}
函数newFormClosedCallback(结果、目标){
if(result==SP.UI.DialogResult.OK){
SP.UI.Notify.addNotification(“添加了列表项”,false);
}
如果(结果===SP.UI.DialogResult.cancel){
SP.UI.Notify.addNotification(“添加新项目已取消”,false);
}
}

您提供的示例代码将起作用。您只需要做一些小的更改来引用您的列表。此外,此代码还引用了editForm.aspx,如果要添加信息,则需要使用newForm.aspx

     function openNewForm() {
        var listName = 'DisplayTitleOfYourList';
        var options =
        {
            url: _spPageContextInfo.webAbsoluteUrl + "/Lists/" + listName + "/NewForm.Aspx",
            dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback)
        };

        SP.UI.ModalDialog.showModalDialog(options);
    }

    function newFormClosedCallback(result, target) {
        if (result === SP.UI.DialogResult.OK) {
            SP.UI.Notify.addNotification("List item was added.", false);
        }

        if (result === SP.UI.DialogResult.cancel) {
            SP.UI.Notify.addNotification("Add new item was cancelled.", false);
        }
    }
<input value='add a new item' type='button' onclick='openNewForm();' id='btnNewForm' />
函数openNewForm(){ var listName='DisplayTitleOfYourList'; var期权= { url:_spPageContextInfo.webAbsoluteUrl+“/Lists/”+listName+“/NewForm.Aspx”, dialogReturnValueCallback:Function.createDelegate(null,newFormClosedCallback) }; SP.UI.ModalDialog.showModalDialog(选项); } 函数newFormClosedCallback(结果、目标){ if(result==SP.UI.DialogResult.OK){ SP.UI.Notify.addNotification(“添加了列表项”,false); } 如果(结果===SP.UI.DialogResult.cancel){ SP.UI.Notify.addNotification(“添加新项目已取消”,false); } } 根据站点和页面的设置方式,您可能无法直接从内容编辑器或脚本编辑器web部件执行javascript。我总是建议使用JS链接将javascript链接到页面,因为我觉得它更干净、更易于管理。有关更多信息,请参阅以下帖子:


您提供的示例代码将起作用。您只需要做一些小的更改来引用您的列表。此外,此代码还引用了editForm.aspx,如果要添加信息,则需要使用newForm.aspx

     function openNewForm() {
        var listName = 'DisplayTitleOfYourList';
        var options =
        {
            url: _spPageContextInfo.webAbsoluteUrl + "/Lists/" + listName + "/NewForm.Aspx",
            dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback)
        };

        SP.UI.ModalDialog.showModalDialog(options);
    }

    function newFormClosedCallback(result, target) {
        if (result === SP.UI.DialogResult.OK) {
            SP.UI.Notify.addNotification("List item was added.", false);
        }

        if (result === SP.UI.DialogResult.cancel) {
            SP.UI.Notify.addNotification("Add new item was cancelled.", false);
        }
    }
<input value='add a new item' type='button' onclick='openNewForm();' id='btnNewForm' />
函数openNewForm(){ var listName='DisplayTitleOfYourList'; var期权= { url:_spPageContextInfo.webAbsoluteUrl+“/Lists/”+listName+“/NewForm.Aspx”, dialogReturnValueCallback:Function.createDelegate(null,newFormClosedCallback) }; SP.UI.ModalDialog.showModalDialog(选项); } 函数newFormClosedCallback(结果、目标){ if(result==SP.UI.DialogResult.OK){ SP.UI.Notify.addNotification(“添加了列表项”,false); } 如果(结果===SP.UI.DialogResult.cancel){ SP.UI.Notify.addNotification(“添加新项目已取消”,false); } } 根据站点和页面的设置方式,您可能无法直接从内容编辑器或脚本编辑器web部件执行javascript。我总是建议使用JS链接将javascript链接到页面,因为我觉得它更干净、更易于管理。有关更多信息,请参阅以下帖子:


您能否更具体地说明为什么此代码“不起作用”?您是如何使用这个脚本的,您是在jslink还是代码片段中引用它的?我将该代码放入内容编辑器中,它生成了一个按钮,但单击该按钮时,会出现404错误。我不知道它为什么会这样。现在可能是因为我不确定应该在哪里进行编辑(即,将列表的信息(如列表的名称和URL)放在哪里)。如果有用的话,我很乐意使用它,但我不太确定我应该在哪里编辑。你可以把列表放在任何你想要的地方。该按钮只需要重定向到该列表的editform.aspx。我该如何做呢?我需要列表的URL还是列表的名称?如何将所需列表链接到此代码?能否更具体地说明此代码“不起作用”的原因?您是如何使用这个脚本的,您是在jslink还是代码片段中引用它的?我将该代码放入内容编辑器中,它生成了一个按钮,但单击该按钮时,会出现404错误。我不知道它为什么会这样。现在可能是因为我不确定应该在哪里进行编辑(即,将列表的信息(如列表的名称和URL)放在哪里)。如果有用的话,我很乐意使用它,但我不太确定我应该在哪里编辑。你可以把列表放在任何你想要的地方。该按钮只需要重定向到该列表的editform.aspx。我该如何做呢?我需要列表的URL还是列表的名称?如何将所需列表链接到此代码?谢谢Alex,我将尝试一下!我是否需要将列表的URL或标题放在此代码中的任何位置?如果列表位于同一站点(不确定您的站点层次结构),则使用上述代码,您只需要提供列表的显示标题,其中我有
var listName='displaytTitleOfYourList'
。或者,您可以硬编码完整的列表url。太好了,再次感谢您的帮助。如果我的回答有帮助,请记住向上投票:)谢谢,祝您好运谢谢