我在第 4 个选项卡上有一个带有日历控件的选项卡,但是当我选择一个日期时,回发会导致选项卡面板返回到第一个选项卡,而不是它来自的第 4 个选项卡。有没有办法让它返回到日历控件所在的选项卡而不是恢复到第一个选项卡?
我知道在 TabContainer 上将 autoPostback 设置为 true 会执行此操作,但这意味着它会在每个选项卡更改时重新加载,而不仅仅是我想要的。
有任何想法吗 ?
将第四个选项卡的内容包装在 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 文件执行的任何格式设置,因为我的经验是它无法在更新时保留默认格式设置。
如果您需要更多信息或代码示例,请给我发消息。
安德鲁