在SharePoint 2013中以该查阅字段的显示形式显示具有相同查阅字段的所有项目的列表

在SharePoint 2013中以该查阅字段的显示形式显示具有相同查阅字段的所有项目的列表,sharepoint,sharepoint-2013,client-side-scripting,Sharepoint,Sharepoint 2013,Client Side Scripting,我有两个列表,分别是房间和设备 在设备列表中,有一个到房间列表的查找字段 我想在房间中显示所有相关设备简单的表格显示形式 我应该如何实现这一点?好的,实现这一点的可能性很大。一些可能的、好看的解决方案可以是: 重载单击列表中的市场价值(可以使用JSLink完成),打开一个模式对话框页面,其中列出了所有设备(使用REST查询获取) 重载对列表中市场价值的点击(可以使用JSLink完成),并重定向到同一页面,但使用过滤器重定向到同一视图 如果市场数量不多,也可以为每个市场创建视图(不太好,但会减少编

我有两个列表,分别是房间设备

设备列表中,有一个到房间列表的查找字段

我想在房间中显示所有相关设备简单的表格显示形式


我应该如何实现这一点?

好的,实现这一点的可能性很大。一些可能的、好看的解决方案可以是:

  • 重载单击列表中的市场价值(可以使用JSLink完成),打开一个模式对话框页面,其中列出了所有设备(使用REST查询获取)
  • 重载对列表中市场价值的点击(可以使用JSLink完成),并重定向到同一页面,但使用过滤器重定向到同一视图
  • 如果市场数量不多,也可以为每个市场创建视图(不太好,但会减少编码工作量)

  • 如果你还想找别的东西,请告诉我。希望这有帮助

    好的,实现这一目标的可能性很大。一些可能的、好看的解决方案可以是:

  • 重载单击列表中的市场价值(可以使用JSLink完成),打开一个模式对话框页面,其中列出了所有设备(使用REST查询获取)
  • 重载对列表中市场价值的点击(可以使用JSLink完成),并重定向到同一页面,但使用过滤器重定向到同一视图
  • 如果市场数量不多,也可以为每个市场创建视图(不太好,但会减少编码工作量)

  • 如果你还想找别的东西,请告诉我。希望这有帮助

    一般解决方案如下

  • 检查您是否可以在JavaScript中使用RESTAPI,如下所示。(在此步骤中,您可以确保URL返回您请求的XML数据)

  • 使用SharePoint Designer创建一个新的自定义DisplayForm,并添加以下jQuery脚本,以在结束时读取和生成以前获取的数据

    <script src="/_layouts/15/CDN/Js/jquery-1.11.1.min.js" type="text/javascript" >  </script>
    
    <script type="text/javascript" >
    
    function LoadEquipments(roomValue) {
        $.ajax({
            url : _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getByTitle('Equipments')/items/" +
            "?$select=Title,ID" +
            "&$filter=Room eq '" + roomValue + "'",
    
            type : "GET",
            headers : {
                "accept" : "application/json;odata=verbose",
            },
            success : function (data) {
    
                var equipments = [];
                var results = data.d.results;
                for (var i = 0; i < results.length; i++) {
    
                    if (equipments.indexOf(results[i].Title) < 0)
                        equipments.push(results[i].Title);
                }
    
                var ullist = $('<ul/>');
    
                for (var i = 0; i < equipments.length; i++)
                    $('<li/>').val(equipments[i]).html(equipments[i]).appendTo(ullist);
    
                ullist.appendTo('#divEquipements'); 
                $("#divEquipements ul li").css("font-size", "16px").css("color", "salmon");
    
            },
            error : function (err) {
                alert(JSON.stringify(err));
            }
        });
    }
    
    $(document).ready(function () { 
        var roomVal = $("#TitleValue").text(); 
        LoadEquipments(roomVal); 
    });
    
    
    功能加载设备(roomValue){
    $.ajax({
    url:_spPageContextInfo.webServerRelativeUrl+“/_api/web/List/getByTitle('Equipments')/items/”+
    “?$select=标题,ID”+
    “&$filter=Room eq'”+roomValue+“'”,
    键入:“获取”,
    标题:{
    “接受”:“application/json;odata=verbose”,
    },
    成功:功能(数据){
    var设备=[];
    var结果=数据d结果;
    对于(var i=0;i”);
    对于(var i=0;i').val(设备[i]).html(设备[i]).appendTo(ullist);
    ullist.appendTo(“#divequipments”);
    $(“#divequipments ul li”).css(“字体大小”、“16px”).css(“颜色”、“三文鱼”);
    },
    错误:函数(err){
    警报(JSON.stringify(err));
    }
    });
    }
    $(文档).ready(函数(){
    var roomVal=$(“#标题值”).text();
    装载设备(roomVal);
    });
    
  • 为了使以前的代码能够按照您的猜测工作,您最好为新td添加id以包含新需求(例如,新tr作为最后一行,其中包含带有id='divements')数据的aa div,并且只需将id='TitleValue'添加到包含房间标题的td中(通常是第一行)


  • 一般的解决办法如下

  • 检查您是否可以在JavaScript中使用RESTAPI,如下所示。(在此步骤中,您可以确保URL返回您请求的XML数据)

  • 使用SharePoint Designer创建一个新的自定义DisplayForm,并添加以下jQuery脚本,以在结束时读取和生成以前获取的数据

    <script src="/_layouts/15/CDN/Js/jquery-1.11.1.min.js" type="text/javascript" >  </script>
    
    <script type="text/javascript" >
    
    function LoadEquipments(roomValue) {
        $.ajax({
            url : _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getByTitle('Equipments')/items/" +
            "?$select=Title,ID" +
            "&$filter=Room eq '" + roomValue + "'",
    
            type : "GET",
            headers : {
                "accept" : "application/json;odata=verbose",
            },
            success : function (data) {
    
                var equipments = [];
                var results = data.d.results;
                for (var i = 0; i < results.length; i++) {
    
                    if (equipments.indexOf(results[i].Title) < 0)
                        equipments.push(results[i].Title);
                }
    
                var ullist = $('<ul/>');
    
                for (var i = 0; i < equipments.length; i++)
                    $('<li/>').val(equipments[i]).html(equipments[i]).appendTo(ullist);
    
                ullist.appendTo('#divEquipements'); 
                $("#divEquipements ul li").css("font-size", "16px").css("color", "salmon");
    
            },
            error : function (err) {
                alert(JSON.stringify(err));
            }
        });
    }
    
    $(document).ready(function () { 
        var roomVal = $("#TitleValue").text(); 
        LoadEquipments(roomVal); 
    });
    
    
    功能加载设备(roomValue){
    $.ajax({
    url:_spPageContextInfo.webServerRelativeUrl+“/_api/web/List/getByTitle('Equipments')/items/”+
    “?$select=标题,ID”+
    “&$filter=Room eq'”+roomValue+“'”,
    键入:“获取”,
    标题:{
    “接受”:“application/json;odata=verbose”,
    },
    成功:功能(数据){
    var设备=[];
    var结果=数据d结果;
    对于(var i=0;i”);
    对于(var i=0;i').val(设备[i]).html(设备[i]).appendTo(ullist);
    ullist.appendTo(“#divequipments”);
    $(“#divequipments ul li”).css(“字体大小”、“16px”).css(“颜色”、“三文鱼”);
    },
    错误:函数(err){
    警报(JSON.stringify(err));
    }
    });
    }
    $(文档).ready(函数(){
    var roomVal=$(“#标题值”).text();
    装载设备(roomVal);
    });
    
  • 为了使以前的代码能够按照您的猜测工作,您最好为新td添加id以包含新需求(例如,新tr作为最后一行,其中包含带有id='divements')数据的aa div,并且只需将id='TitleValue'添加到包含房间标题的td中(通常是第一行)


  • 萨希洛纳的许多人。我认为第一种解决办法是最好的。如果你能给出更多的提示或者说出我应该遵循的步骤,那就太好了。我是一个初学者:(例如1:jslink的例子:在上面链接的帮助下,将链接添加到一个对话框弹出窗口,可以是一个aspx页面。在文档上的aspx文件中。ready()方法使用REST查询获取该市场的所有项目。对于REST,请参考下面的链接:Many thanx@sahilona。我认为第一个解决方案是最好的。如果