Я создал несколько простых команд, основанных на том, что находится в «Книге определений данных», в которой пользователь взаимодействует с правой кнопкой мыши на элементе -> insert -> MyCommand, за которым следует простое диалоговое окно с надписью «Вы действительно хотите это сделать?»».Замечательно.
Теперь я хочу команду, которая позволит мне немного больше взаимодействовать с пользователем в диалоговом окне.Мне нужно добавить пару списков переключателей, чтобы пользователь мог выбрать параметры, а затем кнопку для запуска команды.Я думаю, что мне нужно использовать ShowControlPopup для этого.Я создал элемент управления (ascx), чтобы определить, как будет выглядеть всплывающее окно (и опубликовал тестовую версию, чтобы убедиться, что он работает как базовый элемент управления в Sitecore).Тем не менее, я не уверен, какие именно параметры для ShowControlPopup.
Первый параграф называется "Id
". Какой идентификатор я должен указать здесь?Идентификатор элемента, который использует всплывающий элемент управления?
Второй параметр называется "where
" - я предполагаю, что это URL, который будет иметь всплывающее окно.Должен ли элемент контента существовать здесь, или это просто фиктивный URL?
Третий параметр называется "controlId
". Какой идентификатор я должен указать здесь?Я пробовал идентификатор моего элемента управления, который определяет всплывающее окно, но я получаю сообщение об ошибке, говорящее о том, что элемент управления не может быть найден.
Когда пользователь выбрал свои параметры в диалоговом окне и нажимает «ОК», который обрабатывает событие?Метод Run класса команд или обработчик событий в коде для всплывающего элемента управления?
Пока это мой код.Если происходит сбой, когда он пытается создать элемент управления с ошибкой о невозможности найти элементы с предоставленным идентификатором.Я только что угадал, о каких элементах хочет знать всплывающий элемент управления.
protected void Run(Sitecore.Web.UI.Sheer.ClientPipelineArgs args)
{
if (args.IsPostBack)
{
if (args.HasResult)
{ // normally code here would run when the dialog box is completed by the user. Is that so in this case?
}
}
else
{
Sitecore.Context.ClientPage.ClientResponse.ShowControlPopup("F3684C4C-D9EF-4796-A471-5B05553119B6",
"http://mysite/dummy.aspx",
"B8D503D0-AEBE-43AE-B924-C3849F03E90D");
args.WaitForPostBack();
}
}
Приветствия,
Джеймс.
Sitecore 6.2 rev 091012 / Win7 32bit / IIS7 / SQLExpress 2008 (только для локальных разработчиков)