我在标签容器中有一组标签,我可以通过手动点击标签或使用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>
答案 0 :(得分:1)
将标签容器放在更新面板中应该可以解决问题。此外,目前您的代码存在缺陷,您不希望始终只将ActiveIndex标签添加1,因为如果超出最后一个范围,您将获得超出范围的异常。
if(DispatchTabs.ActiveTabIndex == DispatchTabs.Count() -1)
{
DispatchTabs.ActiveTabIndex = 0;
}
else
{
DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;
}