E 'possibile riutilizzare la finestra di dialogo modale SharePoint 2010 (s)?
-
16-10-2019 - |
Domanda
Ho bisogno di un semplice 'sì / no' finestra di dialogo modale per una parte di SharePoint web, e io non voglia di reinventare la ruota qui. SharePoint utilizza alcune molto belle finestre di dialogo modale per questo scopo, è possibile riutilizzarle, invece di creare una cucciolata di pagine poco aspx per la ShowModalDialog () la funzione
Soluzione
In realtà non è necessario l'uso dialog.master, come che di per sé non aiuta si utilizza il quadro di dialogo del 2010. il default.master funziona bene perché ha CSS che nasconde la barra a nastro, la navigazione, e gli altri componenti dell'interfaccia utente che non si desidera in una finestra di dialogo (... a meno che non esplicitamente esporli).
È necessario eseguire codice javascript per avviare la finestra di dialogo (... sarebbe andato nella pagina padre):
function showModalDialog(title) {
var options = SP.UI.$create_DialogOptions();
options.title = title;
// width and height are optional as the framework autosizes the dialog to the content
options.width = 600;
options.height = 485;
options.url = "/_layouts/htmleditor.aspx";
options.allowMaximize = true;
// you can specify an optional callback
options.dialogReturnValueCallback = Function.createDelegate(null, dialogCallback);
SP.UI.ModalDialog.showModalDialog(options);
}
Supponendo di avere l'ok di serie e Annulla nella tua pagina di dialogo (... può essere una pagina di applicazione di base di SharePoint creata in un progetto VS2010), si era appena il cablaggio del eventi per quei pulsanti e all'interno del code- dietro si può emettere un javascript per chiudere la finestra e, facoltativamente, Retuan un valore alla pagina superiore:
void CancelDialog_Click(object sender, EventArgs e)
{
if (this.IsDialogMode)
// in commonModalDialogClose the zero denotes Cancel and a one denotes OK. The 2nd argument is an optional value to return to the parent page's callback function...assuming one was defined.
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "DismissRecoverPasswordDialog", "window.frameElement.commonModalDialogClose(0, \"\");", true);
else
Response.Redirect(ReferralUrl.Value);
}
La speranza che aiuta ... non esitate a fare domande di follow-up di formiche che avete.
Altri suggerimenti
Sì, è possibile riutilizzarli. E 'tutto su come utilizzare il file .Master che le navi di SharePoint. Pagina maestro come dialog.master sono progettati per le pagine che vengono visualizzate nel popup e si dovrebbe riutilizzare loro, piuttosto che scrivere il proprio. Viene fornito con pulsanti OK e Annulla e segnaposto in cui è possibile inserire il vostro contenuto. Nella pagina si dovrà fare riferimento loro con attributo MasterPageFile perché non sono in galleria pagina master.
MasterPageFile="~/_layouts/dialog.master"
E nel vostro dietro il codice, è possibile collegare il codice a click del pulsante "Ok" in questo modo:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
((DialogMaster)this.Page.Master).OkButton.Click += new EventHandler(this.OkButtonClicked);
}
È possibile modificare la proprietà Text del pulsante OK su "Sì" e il pulsante Annulla per "No" se questo ha un senso nel tuo caso.
Riutilizzo Popup finestre di dialogo Per quanto riguarda il riutilizzo è interessato, è possibile utilizzare parametri stringa di query di manipolare il contenuto della pagina. Ad esempio, con sì / no pulsante in genere si visualizza un messaggio. è possibile memorizzare il messaggio nel file di risorse e trasmettere chiave di risorsa nella query stringa alla pagina di dialogo aspx per visualizzare un messaggio diverso.
Anche se si pensa che si può riutilizzare finestra di dialogo SharePoint esistente, è possibile esaminare i parametri della stringa di query che si aspetta e inviare i propri parametri e le pagine popup utilizzo di SharePoint.