我有 2 个列表,它们是Room和Equipment。
在设备列表中有一个房间列表的查找字段。
我想在房间简单的表格显示表单中显示所有相关设备。
我应该如何实现这一目标?
我有 2 个列表,它们是Room和Equipment。
在设备列表中有一个房间列表的查找字段。
我想在房间简单的表格显示表单中显示所有相关设备。
我应该如何实现这一目标?
好的,有很多实现这一目标的可能性。一些可能且好看的解决方案可以是:
如果您正在寻找其他东西,请告知。希望这可以帮助!
一般解决方案如下
检查您是否可以使用 JavaScript 中的 REST API,如下所示。(在此步骤中,您只需确保 URL 正在返回您请求的 XML 数据)
http://portal/_api/web/lists/getByTitle('Equipments')/items/?$select=Title,ID&$filter=Room eq 'room1'
使用 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);
});
为了使以前的代码正常工作,您可能会猜到,您最好为新 td 添加 id 以包含新要求(例如,新的 tr 作为最后一行,其中包含 id='divEquipements' 的 aa div)数据,并且只需添加 id= 'TitleValue' 到包含房间标题的 td(通常是第一行)