Удалить вкладку jQuery из dnnTabs программно - PullRequest
0 голосов
/ 09 февраля 2012

Я успешно реализовал jQuery dnnTabs в пользовательском модуле. Я пытаюсь выяснить, как программно удалить вкладку.

Вот javascript для настройки вкладок:

    <script type="text/javascript">
        jQuery(function ($) {
              $('#tabs-demo').dnnTabs();
        });
    </script>

Вот функция, которую я создал для удаления тега:

     <script type="text/javascript">
        jQuery(function ($) {
            $('#tabs-demo').dnnTabs();
         });
     </script>

Вот функция, которую я создал для удаления тега:

     <script type="text/javascript">
         function removeTab(tabID) {
            $('#tabs-demo').dnnTabs('remove', tabID);   
         };
     </script>

Вот как я вызываю функцию из кода:

     ScriptManager.RegisterStartupScript(Me.Page, Me.[GetType](), "tmp", "<script type='text/javascript'>removeTab(1);</script>", False)

Вкладка не удаляется. Я пробовал несколько разных итераций, но безуспешно.

Ответы [ 3 ]

2 голосов
/ 23 октября 2012

Посмотрите на элемент управления ModuleSettings.

Вкладки - это неупорядоченный список, а последний последний элемент списка имеет атрибут runat = "server" и идентификатор. эта вкладка используется для настроек модуля. Он скрыт, когда их нет (или программист поместил их в дополнительный элемент управления со ссылкой действия из меню действий модулей).

<ul class="dnnAdminTabNav dnnClear">
    <li><a href="#msModuleSettings"><%=LocalizeString("ModuleSettings")%></a></li>
    <li><a href="#msPermissions"><%=LocalizeString("Permissions")%></a></li>
    <li><a href="#msPageSettings"><%=LocalizeString("PageSettings")%></a></li>
    <li id="specificSettingsTab" runat="server">
        <asp:HyperLink href="#msSpecificSettings" ID="hlSpecificSettings" runat="server" />
    </li>
</ul>

Видимость последней вкладки обрабатывается в событии OnLoad элемента управления, часть else делает его невидимым:

                //Set visibility of Specific Settings
                if (SettingsControl == null == false)
                {
                    //Get the module settings from the PortalSettings and pass the
                    //two settings hashtables to the sub control to process
                    SettingsControl.LoadSettings();
                    specificSettingsTab.Visible = true;
                    fsSpecific.Visible = true;
                }
                else
                {
                    specificSettingsTab.Visible = false;
                    fsSpecific.Visible = false;
                }

Надеюсь, это поможет! Michael

0 голосов
/ 09 февраля 2012

Благодарю Джона и Брайана Дьюкса за то, что они поставили меня на правильный путь.

Вот окончательное решение:

    <script type="text/javascript">
         function removeTab(tabID) {
             jQuery(function ($) {
                 $('#tabs-demo').tabs('remove', tabID);
             });
         };
    </script>
0 голосов
/ 09 февраля 2012

Вы можете попытаться пропустить dnnTabs('remove') и просто удалить его из DOM с помощью jQuery:

 <script type="text/javascript">
     function removeTab(tabID) {
        $('#tabs-demo '+tabID).remove();   
     };
 </script>
...