Sharepoint 2013 CAML查询空超链接字段导致列表不显示
我的列表有两个超链接字段,所有新项目都将填充这两个字段,但我必须添加的一些旧项目并没有同时填充这两个字段。首先,我添加了一些最新的项目,这些项目都有超链接,以测试我的CAML查询是否有效,它确实有效。直到我添加了一个没有填写两个超链接字段的项目 我尝试在字段中添加空格,但不起作用 我的问题是:Sharepoint 2013 CAML查询空超链接字段导致列表不显示,sharepoint-2013,caml,Sharepoint 2013,Caml,我的列表有两个超链接字段,所有新项目都将填充这两个字段,但我必须添加的一些旧项目并没有同时填充这两个字段。首先,我添加了一些最新的项目,这些项目都有超链接,以测试我的CAML查询是否有效,它确实有效。直到我添加了一个没有填写两个超链接字段的项目 我尝试在字段中添加空格,但不起作用 我的问题是: var hclientContext = new SP.ClientContext.get_current(); var hList = hclientContext.get_web().get_list
var hclientContext = new SP.ClientContext.get_current();
var hList = hclientContext.get_web().get_lists().getByTitle('HRReportsList');
// New caml for getting list based on view
var camlQueryHR = new SP.CamlQuery();
camlQueryHR.set_viewXml('<View Scope="RecursiveAll"><Query><Where><And><Eq><FieldRef Name="Year"/>' +
'<Value Type="Text">2019</Value></Eq><Eq><FieldRef Name="Report_x0020_Type"/>' +
'<Value Type="Choice">Turnover</Value></Eq></And></Where>' +
'<OrderBy><FieldRef Name="YYYYMM" Ascending="False" /></OrderBy>' +
'</Query><RowLimit>50</RowLimit><QueryOptions>' +
'<ViewAttributes Scope="Recursive" /></QueryOptions></View>');
this.hcollListItem = hList.getItems(camlQueryHR);
// end of caml for list view
//this.ncollListItem = nList.getItems("");
hclientContext.load(hcollListItem);
hclientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
var hclientContext=new SP.ClientContext.get_current();
var hList=hclientContext.get_web().get_list().getByTitle('HRReportsList');
//基于视图获取列表的新caml
var camlQueryHR=新SP.CamlQuery();
camlQueryHR.set_viewXml(“”;
控制台中的错误为:“无法获取未定义或空引用的属性‘get_url’”
毫不奇怪,我只是不知道如何让它工作,因为我知道我需要允许某些超链接为空。在这两个超链接字段中添加检查,确保它们不为空,如下所示:
while (listItemEnumerator.moveNext())
{
var hListItem = listItemEnumerator.get_current();
if(hListItem.get_item("ReportLink") && hListItem.get_item("InfographicLink"))
{
listItemInfo += hListItem.get_item('InfographicLink').get_description() + '</a></br></br>' +
'<a href="' + hListItem.get_item('ReportLink').get_url() + '" target="_blank">' +
hListItem.get_item('ReportLink').get_description() + '</a></div>';
}
}
while(listItemEnumerator.moveNext())
{
var hListItem=listItemEnumerator.get_current();
if(hListItem.get_项(“ReportLink”)&hListItem.get_项(“InfographicLink”))
{
listItemInfo+=hListItem.get_项目('InfographicLink')。get_描述()+''+
'';
}
}
这里有一个类似的问题供您参考:
很抱歉回复太晚,我感谢您的耐心。此解决方案非常有效,谢谢。
while (listItemEnumerator.moveNext())
{
var hListItem = listItemEnumerator.get_current();
if(hListItem.get_item("ReportLink") && hListItem.get_item("InfographicLink"))
{
listItemInfo += hListItem.get_item('InfographicLink').get_description() + '</a></br></br>' +
'<a href="' + hListItem.get_item('ReportLink').get_url() + '" target="_blank">' +
hListItem.get_item('ReportLink').get_description() + '</a></div>';
}
}