У меня есть панель вкладок с элементом управления календарем на 4-й вкладке, но когда я выбираю дату, обратная передача приводит к тому, что панель вкладок возвращается на первую вкладку вместо 4-й, из которой она пришла. Есть ли способ заставить его вернуться на вкладку, на которой включен элемент управления календарем, и не вернуться к первой вкладке?
Я знаю, что установка autoPostback на true в TabContainer сделает это, но это означает, что он перезагружается при каждом изменении вкладки, а не только на той, которую я хочу.
Есть идеи ?





Обертывание содержимого четвертой вкладки в элементе управления UpdatePanel должно помочь.
<ajaxToolkit:TabPanel runat = "server" ID = "tabCS" HeaderText = "Country Settings">
<ContentTemplate>
<asp:UpdatePanel runat = "server" ID = "upCountry" UpdateMode = "Conditional">
<ContentTemplate>
... content and calendar
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajaxToolkit:TabPanel>
Вот лучшая практика, которую я нашел.
Если не требуется обновлять другие вкладки на панели вкладок, просто поместите содержимое каждой панели в панель обновления. Если вам нужно обновить другие панели, вы можете вызвать метод программно, чтобы обновить их.
Для этого есть две веские причины: 1.) Поместив панели обновлений во вкладки, у вас будет меньше битов, которые нужно вернуть с сервера. 2.) Программный вызов методов обновления позволяет лучше понять, что именно вы предоставляете конечному пользователю, и вы не забудете обновить данные.
Помните, что если вы используете несколько панелей, чтобы изменить режим обновления с постоянного на условный, чтобы на клиенте обновлялась только соответствующая информация.
Кроме того, если вы хотите поместить весь элемент управления панели вкладок в панель обновлений, вам может потребоваться добавить любое форматирование, которое выполняется для файла CSS, поскольку, по моему опыту, он не может сохранить форматирование по умолчанию при его обновлениях.
Если вам нужна дополнительная информация или образец кода, просто напишите мне.
Андрей
На самом деле для этого потребовались оба ответа, но я могу выбрать только один в качестве принятого ответа, извините за это. Теперь работает отлично, спасибо.