Условно отображать панели вкладок?

Просто интересно, возможно это или нет:

Скажем, у меня есть TabContainer с двумя панелями. В большинстве случаев я бы хотел, чтобы у пользователя была возможность выбирать, какую вкладку просматривать.

Теперь в нескольких сценариях одна из этих панелей вкладок не будет видна или пуста. Можно ли сделать так, чтобы в этих ситуациях весь TabContainer становился «невидимым»? (т.е. заголовки не видны, отображается только заполненная панель вкладок)

В идеале я бы хотел сделать это с помощью ajax TabContainer, но если это невозможно; При необходимости я всегда могу вернуться к использованию jQuery / CSS.

Спасибо!


person Jim B    schedule 28.03.2011    source источник


Ответы (1)


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

person Paul Sasik    schedule 28.03.2011
comment
Очень хорошее решение, но я, кажется, натолкнулся на небольшую загвоздку. Я обернул все содержимое TabPanel в asp: Panel, чтобы я мог легко его перемещать. Однако один из них содержит UpdatePanel, и я получил следующую ошибку: Невозможно отменить регистрацию UpdatePanel с идентификатором updBucketOrderer, поскольку он не был зарегистрирован в ScriptManager. Это могло произойти, если UpdatePanel был удален из дерева элементов управления, а затем снова добавлен, что не поддерживается. - person Jim B; 29.03.2011
comment
Пока не нашел обходного пути; но я все еще копаюсь, так что посмотрим, что будет. - person Jim B; 29.03.2011
comment
Интересно. Вы перемещаете содержимое программно или во время разработки. Похоже, если вы сделали это во время разработки, эта ошибка не должна возникать. Однако я мог видеть, как это могло произойти во время выполнения. Как вы это делаете? - person Paul Sasik; 29.03.2011
comment
Прямо сейчас пытаюсь сделать это в Page_Init (). Это кошмар панели обновлений, у меня сейчас есть код для правильной настройки некоторых элементов управления триггерами (поскольку они находятся в разных контейнерах именования), поэтому я наполовину пытаюсь обойти проблему, указанную выше, и наполовину пытаясь увидеть, могу ли я скрыть TabStrip, если видна только одна из двух вкладок. - person Jim B; 29.03.2011
comment
Похоже, я куда-то добираюсь; это сообщение: kruegerwebdesign.com/blog/?p=44 кажется подходящим решением . А теперь немного потестирую ... - person Jim B; 29.03.2011
comment
Вот это да. Уродливый! Надеюсь, это сработает для вас! (В данном случае надоедливое преуменьшение.) - person Paul Sasik; 29.03.2011