Можно ли повторно использовать модальный диалог SharePoint 2010?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/16893

  •  16-10-2019
  •  | 
  •  

Вопрос

Мне нужен простой модальный диалог «да/нет» для веб-части SharePoint, и я действительно не хочу повторно изобретать колесо здесь. SharePoint использует несколько очень хороших модальных диалогов для этой цели, возможно ли повторно использовать их, вместо создания мусора с небольшими страницами ASPX для функции ShowModalDialog ()

Это было полезно?

Решение

На самом деле вам не нужно использовать Dialog.master, так как сам по себе не помогает вам использовать диалоговую структуру 2010 года. по умолчанию. Мастер работает просто отлично, потому что у него есть CSS, который скрывает ленточную полосу, навигацию и другие компоненты пользовательского интерфейса, которые вы не хотите в диалоге (... если вы не разместите их).

Вам нужно запустить код JavaScript, чтобы запустить диалог (... будет идти на родительской странице):

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

Предполагая, что у вас есть стандартные кнопки «ОК» и «Отмена на странице диалога» (... может быть базовой страницей приложения SharePoint, созданной в проекте VS2010), вы просто подготовите события для этих кнопок и внутри кода, вы можете Издайте какой -то JavaScript, чтобы закрыть диалог и при желании приведите значение для родительской страницы:

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

Надеюсь, это поможет ... пожалуйста, не стесняйтесь задавать Ant последующие вопросы.

Другие советы

Да, вы можете их повторно использовать. Все дело в использовании файла .master, который поставляется SharePoint. Мастерская страница, как Dialog.master, предназначена для страниц, которые отображаются во всплывающем окне, и вы должны повторно использовать их, а не писать свои собственные. Он поставляется с кнопками OK и отменой и заполнителями, в которых вы можете разместить свой контент. На вашей странице вам придется направить их с атрибутом MasterPageFile, потому что они не находятся в галерее главной страницы.

MasterPageFile="~/_layouts/dialog.master"

И в вашем коде вы можете подключить код на нажатию кнопки «ОК», как это:

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

Вы можете изменить свойство текста Okbutton на кнопку «Да» и отменить на «нет», если это имеет смысл в вашем случае.

Повторное использование всплывающих диалоговЧто касается повторного использования, вы можете использовать параметры строки запросов для манипулирования контентом на странице. Например, с кнопкой «да/нет» вы обычно отображаете сообщение. Вы можете сохранить сообщение в файлах ресурсов и перенести клавишу ресурса в строке запроса на страницу диалога ASPX, чтобы отобразить различное сообщение.

Кроме того, если вы думаете, что можете повторно использовать существующее диалоговое окно SharePoint, вы можете проверить параметры строки запроса, которые он ожидает, и отправить свои собственные параметры и использовать всплывающие страницы SharePoint.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top