SharePoint 2013 Visio Web Access Modal Dialog - помощь
-
29-09-2020 - |
Вопрос
Я пытаюсь найти решение или лучший способ сделать это, в основном у меня есть Visio Web Access WebPart на самой странице, из-за макета страницы его только отображают в небольшом виде, мы решили, что кнопка нажимает на кнопкуИ расширить его в полном режиме, я знаю, что используя на основе на базе Visiowebaccess.aspx, чтобы вызвать файл Visio, но мы не хотим, чтобы кнопка панели инструментов отображается.
Вопросы: Есть ли какие-либо запросы для VisioWebaccess.aspx, которые можно использовать?Или все равно в любом случае для модального диалога SharePoint, чтобы ввести какой-то JavaScript?
код как таковой:
// Hook into the AJAX Sys.Application.load event.
Sys.Application.add_load(onApplicationLoad)
// Define global variables.
var vwaControl;
var webPartElementID;
var drawingURL ;
var vwaPage;
// Capture a reference to the current session of the Visio Web Access Web Part.
function onApplicationLoad() {
try{
webPartElementID = getVWAWebPartID();
vwaControl= new Vwa.VwaControl(webPartElementID);
drawingURL = vwaControl.getDiagramUrl();
vwaPage = vwaControl.getActivePage();
}
catch(err){
console.log(err);
$("#btn_visioModal").hide();
}
}
// Search the SharePoint page to get the WebPartID# for the Visio Web Access Web Part.
function getVWAWebPartID() {
// Get a NodesList of all the div tags on the page.
var divArray = document.getElementsByTagName("div");
var webPartElementID;
// Iterate through the NodesList to get the node with the class attribute "VisioWebAccess."
for (var i = 0; i < divArray.length; i++) {
var node = divArray[i];
// Return the first instance of the Visio Web Access Web Part.
if (node.className == "VisioWebAccess") {
webPartElementID = node.parentNode.parentNode.id;
break;
}
}
return webPartElementID;
}
function openInDialog() {
try{
// Get the URL for the drawing currently displayed in the Visio Web Access Web Part.
drawingURL = vwaControl.getDiagramUrl();
// Setup option for the modal dialog
var options = {url: "http://sharepointportal/_layouts/15/VisioWebAccess/VisioWebAccess.aspx?id="
+ drawingURL,
width: 1280,
height: 768,
allowMaximize: false,
showClose: true};
SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}
catch(err){
console.log(err);
}
.
спасибо.
Решение
Похоже, я нашел решение: Вместо того, чтобы использовать Page VisiOWeBaccess, создайте новую пустую страницу с помощью The Visio Web Part, используйте контейнер-жидкость, если ваш сайт SharePoint имеет Bootstrap (какой у меня есть) при вызове модального пропускания в URL-адрес файла через QueryString и на модальной страницеВключите эту SCRPT:
function changeUrl(){
// Get the URL of the current file being displayed.
fileURL = GetQueryStringParams('fileURL');
var currDiagram = vwaControl.getDiagramUrl();
currDiagram = currDiagram.replace("%20", " ");
fileURL = decodeURI(fileURL);
console.log(vwaControl.getDiagramUrl());
console.log(fileURL);
// Replace the currently displayed Web Drawing with the other Web Drawing.
vwaControl.openDiagram(fileURL);
}
.