Question

je besoin d'un simple « Oui / Non » dialogue modale pour une partie Web SharePoint, et je ne veux pas vraiment de réinventer la roue. SharePoint utilise des boîtes de dialogue modales très agréable à cet effet, est-il possible de les réutiliser, au lieu de créer une litière de petites pages ASPX pour la fonction ShowModalDialog ()

Était-ce utile?

La solution

Vous n'avez pas réellement à l'utilisation dialog.master, car cela par lui-même ne vous aide pas utiliser le cadre de dialogue 2010. le default.master fonctionne très bien parce qu'il a CSS qui cache la barre de ruban, la navigation, et d'autres composants de l'interface utilisateur que vous ne voulez pas dans une boîte de dialogue (... à moins que vous exposiez Explicity).

Vous devez exécuter un code javascript pour lancer la boîte de dialogue (... irait dans la page parent):

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); 
}

En supposant que vous avez la norme OK et Annuler dans la page de dialogue (... peut être une page d'application SharePoint de base créée dans un projet VS2010), vous souhaitez simplement câbler les événements pour les boutons et dans le code- derrière vous pouvez émettre javascript pour fermer la boîte de dialogue et retuan le cas échéant une valeur à la page parent:

    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);
    }

L'espoir qui aide ... s'il vous plaît ne pas hésiter à poser des questions de fourmis de suivi que vous avez.

Autres conseils

Oui, vous pouvez les réutiliser. Il est tout au sujet de l'utilisation du fichier .master que les navires SharePoint. page principale comme dialog.master sont conçus pour les pages qui sont affichées dans une fenêtre contextuelle et vous devez les réutiliser plutôt que d'écrire votre propre. Il est livré avec OK et Annuler boutons et des espaces réservés dans lesquels vous pouvez placer votre contenu. Dans votre page, vous devrez les consulter avec l'attribut MasterPageFile parce qu'ils ne sont pas dans la galerie de la page principale.

MasterPageFile="~/_layouts/dialog.master"

Et dans votre code derrière, vous pouvez câbler le code sur clic de bouton « Ok » comme ceci:

protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            ((DialogMaster)this.Page.Master).OkButton.Click += new EventHandler(this.OkButtonClicked);            
        }

Vous pouvez modifier la propriété Text de okButton « Oui » et un bouton Annuler « Non » si cela fait sens dans votre cas.

Réutiliser Popup Dialogs En ce qui concerne la réutilisation, vous pouvez utiliser des paramètres de requête de chaîne pour manipuler le contenu de la page. Par exemple, avec le bouton oui / non vous affiche généralement un message. vous pouvez stocker le message dans les fichiers de ressources et passer de ressources clés dans la chaîne de requête à la page de dialogue ASPX pour afficher un message différent.

Aussi, si vous pensez que vous pouvez réutiliser existante boîte de dialogue sharepoint, vous pouvez examiner les paramètres de chaîne de requête, il attend et envoyer vos propres paramètres et les pages popup d'utilisation sharepoint.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top