合并代码以绘制 table 并使用 Rest API 和 Javascript 移动文件
Merge code to draw table and move file using Rest API and Javascript
下面的代码可以使用 CEWP SPO 绘制 table。我需要在同一 table 中的每一行上添加一个按钮,将相应的文件从其当前位置移动到同一 SPO 站点中的另一个文档库。使用 FileLeafRef 检索文件名。
使用 Ajax GET 类型提取数据,移动命令将使用 POST 类型。请协助合并这两个功能以获得所需的。
当前代码
$(function(){
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('List_Name')/items?$top=10&$orderby=Created%20desc&$select=Reg,NBR,Date";
$.ajax({
url: requestUri,
type: "GET",
headers: {
"accept":"application/json; odata=verbose"
},
success: onSuccess,
});
function onSuccess(data) {
var objItems = data.d.results;
var tableContent = '<table id="Table"><tr><th>Reg</th><th>Num</th><th>Date</th></tr>';
for (var i = 0; i < objItems.length; i++) {
tableContent += '<tr>';
tableContent += '<td>' + objItems[i].Reg + '</td>';
tableContent += '<td>' + objItems[i].NBR + '</td>';
tableContent += '<td>' + moment(objItems[i].Date).format("DD-MM-YYYY") + '</td>';
tableContent += '</tr>';
}
$('#Grid').append(tableContent);
}
});
移动文件代码
function MoveFile(){
var oUrl = _spPageContextInfo.webAbsoluteUrl +"/_api/web/getfilebyserverrelativeurl('/Lib1/doc.docx')/moveto(newurl='/Lib2/doc.docx',flags=1)";
$.ajax({
url: oUrl,
type: "POST",
headers: {
"Accept": "application/json; odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function(data){
console.log(data);
},
error: function(data){
console.log(data);
}
});
}
检查下面的合并代码:
<script>
$(function () {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Documents')/items?$top=10&$orderby=Created desc&$select=*,FileLeafRef";
$.ajax({
url: requestUri,
type: "GET",
headers: {
"accept": "application/json; odata=verbose"
},
success: onSuccess,
});
function onSuccess(data) {
var objItems = data.d.results;
console.log(objItems)
var tableContent = '<table id="Table" style="width:100%"><tr><th>ID</th><th>Title</th><th>Date</th></tr>';
for (var i = 0; i < objItems.length; i++) {
if (objItems[i].FileSystemObjectType != 1) {
var fileName=encodeURI(objItems[i].FileLeafRef);
var button = "<input type='button' value='MoveFile' onclick= MoveFile('"+encodeURI(objItems[i].FileLeafRef) +"')>"
tableContent += '<tr>';
tableContent += '<td>' + objItems[i].ID + '</td>';
tableContent += '<td>' + objItems[i].FileLeafRef + '</td>';
tableContent += '<td>' + moment(objItems[i].Created).format("DD-MM-YYYY") + '</td>';
tableContent += '<td>' + button + '</td>';
tableContent += '</tr>';
}
}
$('#Grid').append(tableContent);
}
});
function MoveFile(FileLeafRef) {
var sourceFile = "/sites/NewProvision/Shared Documents/" + FileLeafRef;
var targetFile = '/sites/NewProvision/doc1/' + FileLeafRef;
var oUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFileByServerRelativePath(decodedurl='" + sourceFile + "')/moveto(newurl='" + targetFile + "',flags=1)";
$.ajax({
url: oUrl,
type: "POST",
headers: {
"Accept": "application/json; odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
</script>
<div id="Grid">
在 MoveFile 函数中,传递一个“FileLeafRef”作为特定文件名的参数,并为设置文件 url 动态定义 sourceFile/targetFile 参数。
下面的代码可以使用 CEWP SPO 绘制 table。我需要在同一 table 中的每一行上添加一个按钮,将相应的文件从其当前位置移动到同一 SPO 站点中的另一个文档库。使用 FileLeafRef 检索文件名。
使用 Ajax GET 类型提取数据,移动命令将使用 POST 类型。请协助合并这两个功能以获得所需的。
当前代码
$(function(){
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('List_Name')/items?$top=10&$orderby=Created%20desc&$select=Reg,NBR,Date";
$.ajax({
url: requestUri,
type: "GET",
headers: {
"accept":"application/json; odata=verbose"
},
success: onSuccess,
});
function onSuccess(data) {
var objItems = data.d.results;
var tableContent = '<table id="Table"><tr><th>Reg</th><th>Num</th><th>Date</th></tr>';
for (var i = 0; i < objItems.length; i++) {
tableContent += '<tr>';
tableContent += '<td>' + objItems[i].Reg + '</td>';
tableContent += '<td>' + objItems[i].NBR + '</td>';
tableContent += '<td>' + moment(objItems[i].Date).format("DD-MM-YYYY") + '</td>';
tableContent += '</tr>';
}
$('#Grid').append(tableContent);
}
});
移动文件代码
function MoveFile(){
var oUrl = _spPageContextInfo.webAbsoluteUrl +"/_api/web/getfilebyserverrelativeurl('/Lib1/doc.docx')/moveto(newurl='/Lib2/doc.docx',flags=1)";
$.ajax({
url: oUrl,
type: "POST",
headers: {
"Accept": "application/json; odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function(data){
console.log(data);
},
error: function(data){
console.log(data);
}
});
}
检查下面的合并代码:
<script>
$(function () {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Documents')/items?$top=10&$orderby=Created desc&$select=*,FileLeafRef";
$.ajax({
url: requestUri,
type: "GET",
headers: {
"accept": "application/json; odata=verbose"
},
success: onSuccess,
});
function onSuccess(data) {
var objItems = data.d.results;
console.log(objItems)
var tableContent = '<table id="Table" style="width:100%"><tr><th>ID</th><th>Title</th><th>Date</th></tr>';
for (var i = 0; i < objItems.length; i++) {
if (objItems[i].FileSystemObjectType != 1) {
var fileName=encodeURI(objItems[i].FileLeafRef);
var button = "<input type='button' value='MoveFile' onclick= MoveFile('"+encodeURI(objItems[i].FileLeafRef) +"')>"
tableContent += '<tr>';
tableContent += '<td>' + objItems[i].ID + '</td>';
tableContent += '<td>' + objItems[i].FileLeafRef + '</td>';
tableContent += '<td>' + moment(objItems[i].Created).format("DD-MM-YYYY") + '</td>';
tableContent += '<td>' + button + '</td>';
tableContent += '</tr>';
}
}
$('#Grid').append(tableContent);
}
});
function MoveFile(FileLeafRef) {
var sourceFile = "/sites/NewProvision/Shared Documents/" + FileLeafRef;
var targetFile = '/sites/NewProvision/doc1/' + FileLeafRef;
var oUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFileByServerRelativePath(decodedurl='" + sourceFile + "')/moveto(newurl='" + targetFile + "',flags=1)";
$.ajax({
url: oUrl,
type: "POST",
headers: {
"Accept": "application/json; odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
</script>
<div id="Grid">
在 MoveFile 函数中,传递一个“FileLeafRef”作为特定文件名的参数,并为设置文件 url 动态定义 sourceFile/targetFile 参数。