2015-08-06 4 views
0

У меня есть html-страница. На этой странице есть одна ссылка. После нажатия на эту ссылку я хочу перейти на совершенно новую страницу с множеством вкладок. Я создал эти вкладки с помощью dojo tabcontainer. Теперь проблема в том, что я могу перейти на новую страницу, содержащую эти вкладки, и по умолчанию открывается первая вкладка. Но я хочу динамически изменять вкладку, которая должна открываться, когда я перехожу к этой странице. Предположим, что нажатие на ссылку на первой странице html должно перейти к странице, содержащей вкладки, и открыть 3-ей вкладку. Аналогично, в некоторых условиях он должен открыть любую другую вкладку. И выбор вкладок выполняется на первой странице, которая снова динамична. Как достичь этого?Перейдите на конкретную вкладку (используемый dojo tabcontainer) на странице из гиперссылки в другой html

 <div dojoType="dijit.layout.TabContainer" id="tabcontainerId" style="height:100%"> 
      <div dojoType="dijit.layout.ContentPane" region="center" title="Title1"> 
       <div dojoAttachPoint="title1WidgetHolder" id="title1WidgetHolder"></div> 
      </div> 
      <div dojoType="dijit.layout.ContentPane" region="center" title="Title2" id="title2PaneId"> 
       <div dojoAttachPoint="title2WidgetHolder" id="title2WidgetHolder"></div> 
      </div> 
      <div dojoType="dijit.layout.ContentPane" region="center" title="Title3" id="title3PaneId"> 
       <div dojoAttachPoint="title3WidgetHolder" id="title3WidgetHolder"</div> 
      <div dojoType="dijit.layout.ContentPane" region="center" id="title4PaneId" title="Title4"> 

      </div> 
     </div> 

Это страница с вкладками, куда я хочу приехать после навигации. На первой странице будет ссылка, на которую я перейду на эту страницу вкладок.

Надеюсь, что этот вопрос ясен.

PS: Я хочу, чтобы выигрыш первым пришел на эту страницу и изменить вкладки в готовом() или dojo.addOnLoad(), который может быть сделан с помощью selectChild()

Заранее спасибо

+0

Если ваша страница обрабатывается на сервере (например, с php), вы можете сгенерировать HTML в соответствии с вкладкой, которую вы хотите загрузить вначале. Если это простая html-страница, вам придется использовать 'ready()' – ben

ответ

0

Different HTML-страницы не разделяют состояние приложения, что вам нужно, чтобы открыть конкретную вкладку.

Tabcontainer имеет специальный атрибут DOM, который позволяет вам открыть определенную вкладку декларативным способом: 'selected'. Если его значение истинно, виджет откроет этот ContentPane.

Вы, скорее всего, используете parseOnLoad: true здесь, поэтому я бы предложил следующее: Добавьте URL-адрес URL-адреса с нужным TabId с помощью хеш-параметра, а в новой странице извлеките этот параметр из URL. Затем, прежде чем разобрать DOM и отобразить все виджеты, добавьте выбранный атрибут в определенную область содержимого.

http://dojotoolkit.org/reference-guide/1.10/dijit/layout/TabContainer.html описывает выбранный атрибут.

В качестве альтернативы вы можете использовать API selectChild аналогичным образом, если вы не хотите изменять атрибуты DOM.

Одно можно сказать наверняка: вы должны сохранить информацию о том, какую вкладку вы хотите открыть, либо через параметр URL, либо с помощью API, либо с помощью файла cookie/localStorage.

Смежные вопросы