我的任务是获取费用报告列表并添加一个批准所有按钮,该按钮会将列表中每个项目的下拉列表更改为已批准。我正在研究如何在sharepoint中使用javascript的几个教程,但是我正在试图找出我的代码没有运行的问题。我在asp:content区域添加了一个asp:按钮,并在其中添加了一个带有函数的脚本标记。见下文:
<asp:Button runat="server" Text="Approve All" id="approvebutton" OnClientClick="dosomething()"></asp:Button>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script type="text/javascript">
function dosomething()
{
var clientContext = SP.ClientContext();
//var olist = clientContext.get_web().get_lists().getByTitle('b612de4b-f85c-4492-8877-8c2b07ae187d');
//clientContext.load(olist);
//clientContext.executeQueryAsync(
// Function.createDelegate(this, this.onQuerySucceeded),
// Function.createDelegate(this, this.onQueryFailed)
// );
alert("Should be done");
//$("#{26787EDD-BCDC-41D2-ABEE-249747203BE8}-{69F3E959-EB93-458F-A4CD-E1ACA2335D10}").hide("slow");
//$("#ctl00_onetidHeadbnnr2").hide("slow");
}
//function onQuerySucceeded(sender, args)
//{
//
// alert("Title: " + olist.get_title()));
//}
//function onQueryFailed(sender, args)
//{
// alert("Request failed");
//}
</script>
如果我的函数中的所有内容都是警报,则代码可以正常工作,但只要我添加第一行,即SP.ClientContext()行,它就会中断。之后没有任何执行,我无法弄清楚原因。任何帮助将不胜感激。
提前致谢!
答案 0 :(得分:0)
你错误地使用SP.ClientContext
。
参见Complete basic operations using JavaScript library code in SharePoint 2013 和MSDN上的SP.ClientContext object
无论如何,您可以通过两种方式使用 ClientContext :
var clientContext = SP.ClientContext.get_current();
用于获取当前上下文(如果您位于Sharepoint页面var clientContext = new SP.ClientContext(siteUrl);
用于创建具有任意网址的新上下文另一个提示是等到加载sp.js
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);
请参阅第二个链接的MSDN页面上的示例或查看此sharepoint.stackexchange.com article