2009-12-15 11 views
9

OK Jestem nowy w DotNetNuke i muszę napisać prosty moduł w DNN, który wyświetli artykuł dla wszystkich i pozwoli administratorowi edytować artykuł/dodać nowy.Nawigacja między elementami sterującymi DotNetNuke za pomocą EditURL() lub NavigateURL()

Mam stronę testową, która zawiera moduł DNN z definicją jednego modułu i dwiema kontrolkami w tej definicji. Domyślna kontrola pokazuje artykuł na podstawie pola articleID w zapytaniu. Następnie kliknij przycisk, który ma załadować formant edycji i przekazać identyfikator artykułu w ciągu zapytania.

Jeśli użyję EditURL() w onClick, formant edycji zostanie załadowany poprawnym articleID, ale przy użyciu skórki administratora. Jeśli użyję Globals.NavigateURL(), to zostanie wyświetlona właściwa skórka, ale moja kontrolka edycji nie ładuje się na stronie.

Każda wskazówka co do tego, co robię źle, lub jak uzyskać ładowanie kontroli edycji za pomocą poprawnej skóry?

Moje dwie metody przełączania z kontrolą edycji (w moim Kliknij przycisk zdarzenia) są wymienione poniżej:

string newURL = this.EditUrl("articleID", Request.QueryString["articleID"], "EditArticle"); 

     Response.Redirect(newURL); 

i

 string newURL = Globals.NavigateURL(this.TabId, "EditArticle","articleID="+Request.QueryString["articleID"]); 

     Response.Redirect(newURL); 
+3

Aby uzyskać więcej informacji o tym, jak to działa, możesz sprawdzić mój blog na ten temat: http://weblogs.asp.net/briandukes/archive/2009/01/21/understanding-module-isolation-in-dnn. aspx. Ostatecznie, w przypadku sytuacji, w której chcesz przejść do formantu edycji bez użycia skórki administratora, zapoznaj się z opcjami od drugiej do czwartej w opcji modułu nawigacji modułu Michaela Washingtona na stronie http://adefwebserver.com/dotnetnukehelp/Misc/ModuleNavigationOptions .htm. – bdukes

+0

Dziękuję za te linki, są one bardzo pomocne, a kontrola DynamicControlsPlaceholder jest, jak sądzę, sposobem na przyszłe moduły skierowane do klienta. – hotbot86

Odpowiedz

4

Właściwie robisz to prawidłowo - z editurl w DNN ładuje skórkę administratora - zazwyczaj ta skórka jest oparta na tym, że ktoś administruje treścią, więc usuwa wszystkie pozostałe moduły i pokazuje "podstawy". Racja czy zło to właśnie robi.

Jeśli nie chcesz tego zrobić, możesz podać przełącznik w zapytaniu i wyświetlić oddzielny panel lub kontrolkę do wielu widoków i wyświetlić różne widoki na podstawie przełącznika w ciągu zapytania.

Istnieje kilka innych podejść, takich jak zmiana obszaru zawartości do edycji obszaru tekstowego z ajaxem lub użycie okien stylu modalnego typu popup.

+0

Dzięki. Przypuszczam, że dla moich aktualnych potrzeb jest to akceptowalne zachowanie, ponieważ tylko administratorzy oglądaliby ten ekran. W przypadku przyszłych modułów, które mają kilka elementów sterujących skierowanych na klienta, myślę, że najlepszą metodą byłoby dynamiczne ładowanie kontrolek za pomocą obiektu DynamicControlsPlaceholder powiązanego przez powyższe bdukty. – hotbot86

+0

Dzięki, sam zapomniałem o tym rozwiązaniu - tak, że jest ono również bardzo opłacalne – braindice

Powiązane problemy