0

我在选项卡容器中有一组选项卡,我可以通过手动单击选项卡或使用 javascript 在它们之间自由移动;但是,我想做的是使用 ASP.NET 服务器端按钮在选项卡之间切换。

所以这里是布局。选项卡 1 有一个 ASP.NET 按钮,单击该按钮应转到选项卡 2 并在网格视图中显示查询结果。这是 ASP.NET 按钮的 onclick 代码:

    protected void btnOutstandingTasks_Click(object sender, EventArgs e)
    {
        try
        {
            // Load task list by all outstanding tickets
            SqlDSOutstanding.SelectParameters.Clear();
            SqlDSOutstanding.SelectParameters.Add("1", TypeCode.Int64, "3");

            gvxTaskList.DataSourceID = null;
            gvxTaskList.DataSource = SqlDSOutstanding;
            gvxTaskList.DataBind();
            upnlTaskList.Update();

            DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;   

        }
        catch (Exception ex)
        {

        }
    }

不知道为什么它不工作,但我想有人知道怎么做。感谢帮助!

这是客户端显示选项卡容器位于更新面板内。

        <asp:UpdatePanel ID="upnlDispatch" UpdateMode="Conditional" runat="server">
        <Triggers></Triggers>
        <ContentTemplate>
            <ajaxToolkit:TabContainer ID="DispatchTabs" runat="server" Height="100%" Width="100%" CssClass="Tab" ActiveTabIndex="0">
                <ajaxToolkit:TabPanel ID="tabDashboard" runat="server" HeaderText="Dashboard" Width="100%" Height="100%">
                    <HeaderTemplate>
                        Dashboard
                    </HeaderTemplate>
                    <ContentTemplate>
                        <asp:UpdatePanel ID="upnlDashboard" UpdateMode="Conditional" runat="server">
                            <ContentTemplate>                   
4

1 回答 1

1

将选项卡容器放在更新面板中应该可以解决问题。此外,目前您的代码存在缺陷,您不希望总是只将 1 添加到 ActiveIndex 选项卡,因为如果超出最后一个,您将获得超出范围的异常。

if(DispatchTabs.ActiveTabIndex == DispatchTabs.Count() -1)
{
   DispatchTabs.ActiveTabIndex = 0;
}
else
{
   DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;  
}
于 2012-10-16T19:01:57.923 回答