Javascript 什么';这项骆驼条款有什么错
只是学习如何使用骆驼和有问题。我可以正确地执行两个不同的查询,但当我组合它们时,会收到一条错误消息。我看了文档,仍然不知道问题出在哪里 查询1:Javascript 什么';这项骆驼条款有什么错,javascript,sharepoint-2013,caml,Javascript,Sharepoint 2013,Caml,只是学习如何使用骆驼和有问题。我可以正确地执行两个不同的查询,但当我组合它们时,会收到一条错误消息。我看了文档,仍然不知道问题出在哪里 查询1: var specifier1 = "<Where><Eq><FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'>" + "<UserID/&g
var specifier1 = "<Where><Eq><FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'>" +
"<UserID/></Value></Eq></Where>";
var specifier2 = "<Where><Eq><FieldRef Name='ID'/><Value Type='Text'>"+currentItemID+"</Value>"+
"</Eq></Where>";
var specifier = "<Where><And><Eq><FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'>" +
"<UserID/></Value></Eq><And><Eq>"+
"<FieldRef Name='ID'/><Value Type='Text'>"+currentItemID+"</Value>"+
"</Eq></And></And></Where>";
设置字符串后,我有以下调用。当你有条件的时候,也许需要有所不同?枚举器循环中的console.log似乎是失败的地方。错误消息似乎跟在6x后面:xxxxxx
camlQuery.set_viewXml("<View><Query>"+specifier+"</Query></View>");
var collListItems = list.getItems(camlQuery);
ctx.load(collListItems);
ctx.executeQueryAsync(
function(){
var enumerator = collListItems.getEnumerator();
count = collListItems.get_count();
while(enumerator.moveNext()){
var item = enumerator.get_current();
console.log("xxxxxID : " + item.get_id());
}
if (count == 0) {
LockDownCells();
}
},
function(sender,args){
console.log("xxxxxxRequest Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
camlQuery.set_viewXml(“+说明符+”);
var collListItems=list.getItems(camlQuery);
ctx.负载(列项目);
ctx.executeQueryAsync(
函数(){
var enumerator=collListItems.getEnumerator();
count=collListItems.get_count();
while(枚举数.moveNext()){
var item=enumerator.get_current();
console.log(“xxxxx id:+item.get_id());
}
如果(计数=0){
锁定细胞();
}
},
函数(发送方,参数){
console.log(“XXXXXX请求失败。”+args.get_message()+“\n”+args.get_stackTrace());
}
);
试试这个:
<Query>
<Where>
<And>
<Eq>
<FieldRef Name='ID'/>
<Value Type='Text'>currentItemID</Value>
</Eq>
<Eq>
<FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'>
<UserID/></Value>
</Eq>
</And>
</Where>
</Query>
currentItemID
试试这个:
<Query>
<Where>
<And>
<Eq>
<FieldRef Name='ID'/>
<Value Type='Text'>currentItemID</Value>
</Eq>
<Eq>
<FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'>
<UserID/></Value>
</Eq>
</And>
</Where>
</Query>
currentItemID
按如下方式修改代码
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItems);
function retrieveListItems(){
var currentItemID=2;
var listTitle="CL1017";
var specifier = "<Where><And>"+
"<Eq><FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'><UserID/></Value></Eq>"+
"<Eq><FieldRef Name='ID'/><Value Type='Text'>"+currentItemID+"</Value></Eq>"+
"</And></Where>";
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<View><Query>"+specifier+"</Query></View>");
var collListItems = list.getItems(camlQuery);
ctx.load(collListItems);
ctx.executeQueryAsync(
function(){
var enumerator = collListItems.getEnumerator();
count = collListItems.get_count();
while(enumerator.moveNext()){
var item = enumerator.get_current();
console.log("xxxxxID : " + item.get_id());
}
if (count == 0) {
//LockDownCells();
}
},
function(sender,args){
console.log("xxxxxxRequest Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
SP.SOD.executeFunc('SP.js','SP.ClientContext',retrieveListItems);
函数retrieveListItems(){
var currentItemID=2;
var listTitle=“CL1017”;
变量说明符=“”+
""+
“”+currentItemID+“”+
"";
var ctx=new SP.ClientContext.get_current();
var list=ctx.get_web().get_list().getByTitle(listTitle);
var camlQuery=new SP.camlQuery();
camlQuery.set_viewXml(“+说明符+”);
var collListItems=list.getItems(camlQuery);
ctx.负载(列项目);
ctx.executeQueryAsync(
函数(){
var enumerator=collListItems.getEnumerator();
count=collListItems.get_count();
while(枚举数.moveNext()){
var item=enumerator.get_current();
console.log(“xxxxx id:+item.get_id());
}
如果(计数=0){
//锁定细胞();
}
},
函数(发送方,参数){
console.log(“XXXXXX请求失败。”+args.get_message()+“\n”+args.get_stackTrace());
}
);
}
如果您只想按项ID查询列表项,我建议您使用下面的代码,我们不需要使用CAML查询
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItems);
function retrieveListItems(){
var itemId=2;
var listTitle="CL1017";
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var listItem = list.getItemById(itemId);
ctx.load(listItem);
ctx.executeQueryAsync(
function(){
console.log("xxxxxID : " + listItem.get_id());
},
function(sender,args){
console.log("xxxxxxRequest Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
SP.SOD.executeFunc('SP.js','SP.ClientContext',retrieveListItems);
函数retrieveListItems(){
var-itemId=2;
var listTitle=“CL1017”;
var ctx=new SP.ClientContext.get_current();
var list=ctx.get_web().get_list().getByTitle(listTitle);
var listItem=list.getItemById(itemId);
ctx.load(列表项);
ctx.executeQueryAsync(
函数(){
log(“XXXXX id:+listItem.get_id());
},
函数(发送方,参数){
console.log(“XXXXXX请求失败。”+args.get_message()+“\n”+args.get_stackTrace());
}
);
}
按如下方式修改代码
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItems);
function retrieveListItems(){
var currentItemID=2;
var listTitle="CL1017";
var specifier = "<Where><And>"+
"<Eq><FieldRef Name='Requestor_x0020_Name' LookupId='True'/><Value Type='Lookup'><UserID/></Value></Eq>"+
"<Eq><FieldRef Name='ID'/><Value Type='Text'>"+currentItemID+"</Value></Eq>"+
"</And></Where>";
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<View><Query>"+specifier+"</Query></View>");
var collListItems = list.getItems(camlQuery);
ctx.load(collListItems);
ctx.executeQueryAsync(
function(){
var enumerator = collListItems.getEnumerator();
count = collListItems.get_count();
while(enumerator.moveNext()){
var item = enumerator.get_current();
console.log("xxxxxID : " + item.get_id());
}
if (count == 0) {
//LockDownCells();
}
},
function(sender,args){
console.log("xxxxxxRequest Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
SP.SOD.executeFunc('SP.js','SP.ClientContext',retrieveListItems);
函数retrieveListItems(){
var currentItemID=2;
var listTitle=“CL1017”;
变量说明符=“”+
""+
“”+currentItemID+“”+
"";
var ctx=new SP.ClientContext.get_current();
var list=ctx.get_web().get_list().getByTitle(listTitle);
var camlQuery=new SP.camlQuery();
camlQuery.set_viewXml(“+说明符+”);
var collListItems=list.getItems(camlQuery);
ctx.负载(列项目);
ctx.executeQueryAsync(
函数(){
var enumerator=collListItems.getEnumerator();
count=collListItems.get_count();
while(枚举数.moveNext()){
var item=enumerator.get_current();
console.log(“xxxxx id:+item.get_id());
}
如果(计数=0){
//锁定细胞();
}
},
函数(发送方,参数){
console.log(“XXXXXX请求失败。”+args.get_message()+“\n”+args.get_stackTrace());
}
);
}
如果您只想按项ID查询列表项,我建议您使用下面的代码,我们不需要使用CAML查询
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItems);
function retrieveListItems(){
var itemId=2;
var listTitle="CL1017";
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var listItem = list.getItemById(itemId);
ctx.load(listItem);
ctx.executeQueryAsync(
function(){
console.log("xxxxxID : " + listItem.get_id());
},
function(sender,args){
console.log("xxxxxxRequest Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
SP.SOD.executeFunc('SP.js','SP.ClientContext',retrieveListItems);
函数retrieveListItems(){
var-itemId=2;
var listTitle=“CL1017”;
var ctx=new SP.ClientContext.get_current();
var list=ctx.get_web().get_list().getByTitle(listTitle);
var listItem=list.getItemById(itemId);
ctx.load(列表项);
ctx.executeQueryAsync(
函数(){
log(“XXXXX id:+listItem.get_id());
},
函数(发送方,参数){
console.log(“XXXXXX请求失败。”+args.get_message()+“\n”+args.get_stackTrace());
}
);
}
我使用U2U CAML查询生成器来帮助构建这些类型的查询。它连接到您的Sharepoint网站,因此您可以逐块构建查询。我尝试加载它,但由于一些奇怪的原因,我无法连接到我们的on-prem解决方案。它问我的网站名,我用的是我自己的证件,它不让我进去。服务器正在以某种禁止的消息进行响应。我猜我们的IT正在阻止我通过这个机制访问。更改此访问权限并不简单。国家局。lolI使用U2U CAML查询生成器来帮助构建这些类型的查询。它连接到您的