如何在单击ASP.NET按钮服务器端时切换到不同的ajax?

时间:2012-10-16 18:52:02

标签: asp.net tabs ajax.net

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

所以这是布局。选项卡1有一个ASP.NET按钮,单击该按钮时,应转到选项卡2并在网格视图中显示查询结果。这是ASP.NET Button的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>                   

1 个答案:

答案 0 :(得分:1)

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

if(DispatchTabs.ActiveTabIndex == DispatchTabs.Count() -1)
{
   DispatchTabs.ActiveTabIndex = 0;
}
else
{
   DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;  
}