RoomとEquipmentの 2 つのリストがあります。
Equipmentリストには、Roomリストへのルックアップ フィールドがあります。
関連するすべての機器を部屋の単純な表形式の表示フォームに表示したい。
どうすればこれを達成できますか?
RoomとEquipmentの 2 つのリストがあります。
Equipmentリストには、Roomリストへのルックアップ フィールドがあります。
関連するすべての機器を部屋の単純な表形式の表示フォームに表示したい。
どうすればこれを達成できますか?
OK、これを達成する可能性はたくさんあります。考えられる見栄えの良い解決策は次のとおりです。
他に探しているものがある場合は、お知らせください。お役に立てれば!
一般的な解決策は次のようになります
以下のように 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 を追加して新しい要件 (たとえば、 id='divEquipements' の aa div を含む最後の行として新しい tr ) のデータを囲み、さらに id= を追加することをお勧めします。部屋のタイトルを含む td への 'TitleValue' (通常は最初の行)