Регистрация  |  Вход
left

Источник. Автор Michael Washington: http://dotnetnuke.adefwebserver.com/DotNetNuke/tabid/195/Default.aspx

Как сделать ссылку в DotNetNuke® (или NavigateURL)

DotNetNuke - это есть набор пользовательских управляющих элементов (.ascx файлов). Вместе они и определяют модуль DNN. Если Вы просмотрите код основных модулей DNN, то увидите что они содержат элементы View, Edit, и Settings.

Ссылку на Settings контрол не делают. Она создается в меню модуля автоматически. Ниже указаны примеры перехода к View и Edit:

  • Переход из View control в Edit control делается так: Response.Redirect(EditUrl())
  • Переход из Edit control в View control делается так: Response.Redirect(Globals.NavigateURL(), true)

Переход к пользовательскому элементу управления

Если Вы желаете создать навигацию для пользовательского элемента иначе, чем было расказано выше, выполните несколько шагов.

1) Создайте свой элемент (смотрите Супер-простой модуль (DAL )). В этом примере создается элемент: EditMyGallery.ascx.

2) Добавьте новый контрол в модуль и дайте ему уникальный ключ.

Уникальный ключ в пример - mygallery. Модуль имеет название DefGallery. Запомните эту информацию, она будет использоваться далее.

На следующем этапе настройте права доступа к модулю. Выберите Просмотр для всех пользователей, таким образом контрол EditMyGallery.ascx будет доступен всем пользователям. Однако администратор портала имеет право по другому определить доступ к модулю пользователям. В данном случае все имеют право его просматривать, даже те, кто не зарегистрирован на портале.

 

Очень важно

В определении модуля, Вы должны установить Default Cache Time = 0 (и нажать ссылку Update Cache Properties). Иначе ваша ссылка может не работать, т.к. модуль кэшируется.

Использование NavigateURL

Сейчас Ваш модуль настроен, и Вы сможете использовать NavigateURL метод. Когда Вы просматариваете NavigateURL метод в проводнике объектов, то картинка такая.

Сама функция в DNN объявлена так:

Public Function NavigateURL
(
ByVal TabID As Integer,
ByVal ControlKey As String,
ByVal ParamArray AdditionalParameters() As String
)
As String

Сообщение:  Вы должны добавить определение DotNetNuke.Common, используя  Imports в VB.NET или using в C# . А теперь самое главное - посмотрите, как обрабатывается событие кнопки cmdEdit в DNN:

C#:

protected void cmdEdit_Click(object sender, EventArgs e)
{
ModuleController objModules = new ModuleController();
Response.Redirect(Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "mygallery", "mid=" ModuleId.ToString()
));
}

VB.NET:

Protected Sub cmdEdit_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim objModules As ModuleController = New ModuleController
Response.Redirect(Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "mygallery", "mid=" & Cstr(ModuleID)))
End Sub

Далее рассмотрим, что получит браузер в результате выполнения инструкции NET. URL выглядит так:

http://localhost/MyDNNWebsite/Home/tabid/36/ctl/mygallery/mid/362/Default.aspx

Выражение: PortalSettings.ActiveTab.TabID,  заменяется на tabid/36 в URL так, что среда DotNetNuke сделает переход на текущую страницу. Параметр "mygallery" вставляется после ctl. Эта инструкция сообщает среде DotNetNuke, что нужно загрузить контрол с ключем mygallery. Код: "mid=" ModuleId.ToString()  вставляет ID модуля mid/362 в URL.

Источник. Автор Michael Washington: http://dotnetnuke.adefwebserver.com/DotNetNuke/tabid/195/Default.aspx

 

right