Umbraco: внутренний пользовательский контроль - PullRequest
1 голос
/ 24 июня 2009

Я успешно создал и интегрировал успешный пользовательский элемент управления в панель управления Umbraco. Страница начинается с элемента управления поиском, который возвращает список редактируемых элементов.

В моем пользовательском контроле возникают проблемы с указанием ссылки на страницу редактирования. Я пытаюсь связаться с ним напрямую. Вот этот код:

<asp:hyperlinkfield
    datanavigateurlformatstring="/usercontrols/useradmin/item_edit.aspx?itemID={0}"
    datanavigateurlfields="itemID" Text="edit" />

Umbraco не может обработать прямую ссылку, и я не уверен, как с ней связаться. Вместо этого он возвращает эту ошибку:

Ни один документ Umbraco не соответствует URL 'http://localhost:1169/usercontrols/useradmin/item_edit.aspx?itemID=f66c8f06-9e0e-4f3c-ac0d-5544e0998094' umbraco попытался сопоставить его, используя этот запрос xpath '/ root / node / node [@urlName = "usercontrols"] / узел [@urlName = "useradmin"] / узел [@urlName = "item_edit"] ')

Есть ли способ связать один пользовательский элемент управления с другим в пользовательском элементе управления панели управления?

Ответы [ 3 ]

1 голос
/ 24 июня 2009

Ссылка на страницу опции

Чтобы включить ссылку на другую страницу, вам нужно добавить в файл web.config запись, в которой umbraco игнорирует путь (поэтому он не пытается интерпретировать URL).

Просто добавьте свой путь к следующему параметру приложения:

<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" />

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

1 голос
/ 24 июня 2009

опция iFrame

Из-за ограничений, описанных в параметре «Ссылка на страницу», вы можете загрузить страницы администратора в iFrame, который вы поместили в элемент управления .ascx.

Таким образом, вы можете перейти от .aspx к .aspx и при этом сохранить вкладки панели инструментов и окружающий дизайн.

Вам все равно нужно будет добавить папку, содержащую ваши ASPX-страницы, в запись umbracoReservedPaths в web.config

<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" />
1 голос
/ 24 июня 2009

Опция обратной передачи

Вместо того, чтобы пытаться связать страницы, почему бы просто не выполнить всю работу в существующем пользовательском элементе управления с помощью обратных передач?

т.е. такой метод в вашем пользовательском управлении

public void Handle_Click(object sender, System.Event args)
{
    //Do Something
}

Это будет работать правильно, поскольку umbraco не будет пытаться интерпретировать URL-адрес, поскольку он остается на той же странице.

...