Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript获取列表项目,我可以更改项目顺序吗?_Javascript_List_Sharepoint 2013 - Fatal编程技术网

使用Javascript获取列表项目,我可以更改项目顺序吗?

使用Javascript获取列表项目,我可以更改项目顺序吗?,javascript,list,sharepoint-2013,Javascript,List,Sharepoint 2013,我使用JavaScript获取列表项,并通过html和CSS自定义外观,但是它们会自动按ID编号排序,我需要按自定义字段“EventDate”排序 我无法通过搜索找到任何东西。我尝试过改变默认的列表视图排序顺序,但到目前为止没有任何效果 <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script> <script type="text/j

我使用JavaScript获取列表项,并通过html和CSS自定义外观,但是它们会自动按ID编号排序,我需要按自定义字段“EventDate”排序

我无法通过搜索找到任何东西。我尝试过改变默认的列表视图排序顺序,但到目前为止没有任何效果

<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script>
<script type="text/javascript" src="_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="_layouts/15/sp.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

<script type="text/javascript">
$(function() {
    GetProducts();
    GetNews();
});

function GetProducts() {
    var clientContext = new SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('HRKPI');
    this.collListItem = oList.getItems("");
    clientContext.load(collListItem);
    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded),
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function GetNews() {
    var nclientContext = new SP.ClientContext.get_current();
    var nList = nclientContext.get_web().get_lists().getByTitle('NewsInfo');
    this.ncollListItem = nList.getItems("");
    nclientContext.load(ncollListItem);
    nclientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded),
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function onQuerySucceeded(sender, args) {
    var listItemEnum = collListItem.getEnumerator();
    var nlistItemEnum = ncollListItem.getEnumerator();
    var ProductInfo = '<div>';
    var NewsInfoHTML = '<div>';

    while (listItemEnum.moveNext()) {
        var oListItem = listItemEnum.get_current();
        ProductInfo += '<div id="pParentSquareKPI"> <p id="pKPIName">' +
            oListItem.get_item('Name') + '</p>' +
            '<p id="pKPIValue">' + oListItem.get_item('Value') + '</p> </div>';
    }


    while (nlistItemEnum.moveNext()) {
        var nListItem = nlistItemEnum.get_current();
        NewsInfoHTML += '<table style="width:97%;text-align:center;color:#3C4F66;border: 1px solid #b1b8c1;margin-bottom:15px;"> <col width="95"> <tr style="margin-bottom:20px;"> <td style="background-color:#3C4F66;color:white;border-right: 1px solid #b1b8c1;font-size:20px;">' +
            nListItem.get_item('EventMonth') +
            '</td> <td rowspan="3" style="text-align:left;padding:10px;background-color:#f1f1f1;">' +
            nListItem.get_item('News') +
            '</td> </tr> <tr> <td style="border-right: 1px solid #b1b8c1;font-size:38px;">' +
            nListItem.get_item('EventDay') +
            '</td> </tr> <tr> <td style="background-color:#f2f2f2;border-right: 1px solid #b1b8c1;">' +
            nListItem.get_item('EventYear') + '</td> </tr> </table>';
    }

    ProductInfo += '</div>';
    $('#products').html(ProductInfo);

    NewsInfoHTML += '</div>';
    $('#news').html(NewsInfoHTML);
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>

$(函数(){
GetProducts();
获取新闻();
});
函数GetProducts(){
var clientContext=new SP.clientContext.get_current();
var oList=clientContext.get_web().get_list().getByTitle('HRKPI');
this.collListItem=oList.getItems(“”);
加载(collListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this,this.onquerySucceed),
Function.createDelegate(this,this.onQueryFailed)
);
}
函数GetNews(){
var nclientContext=new SP.ClientContext.get_current();
var nList=nclientContext.get_web().get_list().getByTitle('NewsInfo');
this.ncollListItem=nList.getItems(“”);
nclientContext.load(ncollListItem);
nclientContext.executeQueryAsync(
Function.createDelegate(this,this.onquerySucceed),
Function.createDelegate(this,this.onQueryFailed)
);
}
函数onquerysucceed(发送方,参数){
var listItemEnum=collListItem.getEnumerator();
var nlistItemEnum=ncollListItem.getEnumerator();
var ProductInfo='';
var NewsInfoHTML='';
while(listItemEnum.moveNext()){
var oListItem=listItemEnum.get_current();
ProductInfo+='

'+ oListItem.get_item('Name')+'

'+ “

”+oListItem.get_item('Value')+”

”; } while(nlistItemEnum.moveNext()){ var nListItem=nlistItemEnum.get_current(); NewsInfoHTML+=“”+ nListItem.get_项('EventMonth')+ ' ' + nListItem.get_项目(“新闻”)+ ' ' + nListItem.get_项目('EventDay')+ ' ' + nListItem.get_item('EventYear')+“”; } ProductInfo+=''; $('#products').html(ProductInfo); NewsInfoHTML+=''; $('#news').html(NewsInfoHTML); } 函数onQueryFailed(发送方,参数){ 警报('请求失败。'+args.get_message()+'\n'+args.get_stackTrace()); }
它根据需要输出项目,但它们按ID排序,ID不可编辑。我需要按自定义列“EventDate”对其进行排序。

尝试设置对数据进行排序

示例脚本

var nList = nclientContext.get_web().get_lists().getByTitle('NewsInfo');
    var query = new SP.CamlQuery();
    query.set_viewXml('<View><Query><OrderBy><FieldRef Name="EventDate" Ascending="FALSE"/></OrderBy></Query></View>');
    this.ncollListItem = nList.getItems(query);
var nList=nclientContext.get_web().get_lists().getByTitle('NewsInfo');
var query=new SP.CamlQuery();
query.set_viewXml(“”);
this.ncollListItem=nList.getItems(查询);

它们是以数组的形式出现的吗?请参阅:可能的副本?不幸的是,我对JavaScript了解不够,无法实现这一点。我的全部代码都在上面,我想我没有数组。我是否在函数GetNews()中对其排序?我使用了这段代码,但它没有排序,我不知道为什么。我让它工作了。出于某种原因,它不允许我使用EventDate字段进行排序。我为Expires写了一个专栏,它按预期工作。谢谢