Modal do SharePoint para upload de documentos:alterando as opções da caixa de diálogo para Editar formulário
-
09-12-2019 - |
Pergunta
Portanto, estou usando o Upload.aspx para doc lib com GUID para fazer o upload em um local personalizado em uma página.Acho que é o formulário de edição que aparece logo após você carregar um documento para adicionar os metadados.Isso é ótimo e é o que eu preciso, mas há uma pequena peça com a qual preciso de ajuda.Se eu definir as opções para a caixa de diálogo que estou usando com o Upload.aspx, a largura e a altura serão fixadas no formulário de edição que será aberto depois e, de qualquer forma, ficará ruim.Eu crio uma caixa de diálogo ridiculamente grande para o upload para acomodar a edição ou vice-versa.
Então, acho que há uma maneira de lidar com isso no retorno de chamada, mas não tenho certeza.
Aqui está basicamente o que estou chamando de um onclick:
function openDialog() {
var dialogOptions = SP.UI.$create_DialogOptions();
dialogOptions.url = "server/site/_layouts/Upload.aspx?List={GUID}&IsDlg=1";
dialogOptions.width = 700 //works for the upload not for the edit
dialogOptions.height = 185 //same as above; works for the upload
dialogOptions.title = "My Title"
dialogOptions.dialogReturnValueCallback = Function.createDelegate(null, CloseCallBack);
SP.UI.ModalDialog.showModalDialog(dialogOptions); }
function CloseCallBack (result, returnValue) {
if (result == SP.UI.DialogResult.OK) {
// logic
} else {
// logic
}
Existe alguma maneira de remediar isso?obrigado como sempre pela ajuda pessoal!sempre apreciado.
Solução
Então o que você quer fazer é alterar o tamanho da caixa de diálogo quando upload.aspx for fechado.Experimente este código
ExecuteOrDelayUntilScriptLoaded(function () {
var dlg = window.parent.SP.UI.ModalDialog.get_childDialog();
dlg.$Q_0(800, 800); //width, height
}, "sp.ui.dialog.js");
Além disso, se você quiser dimensionar a caixa de diálogo automaticamente sem especificar a altura e a largura, use isto:
ExecuteOrDelayUntilScriptLoaded(function () {
//calling autoSize method will extend modal dialog beyond the size of the page
SP.UI.ModalDialog.get_childDialog().autoSize();
//calling this obfuscated method will trim the dialog back within the page boundaries.
SP.UI.ModalDialog.get_childDialog().$2B_0();
}, "sp.ui.dialog.js");