如何切换到不同的AJAX上的ASP.NET按钮服务器端的点击? [英] How can I switch to a different ajax on a click of an ASP.NET button server side?
问题描述
我有一组标签的容器,我可以通过手动点击选项卡或通过使用JavaScript之间自由移动标签;然而,我想要做的是使用ASP.NET服务器端按钮选项卡之间切换。
因此,这里的布局。标签1有一个ASP.NET按钮,其中,点击后,应及时到表2和在GridView显示查询结果。这里的onclick code为ASP.NET按钮:
保护无效btnOutstandingTasks_Click(对象发件人,EventArgs的发送)
{
尝试
{
所有优秀的门票//加载任务列表
SqlDSOutstanding.SelectParameters.Clear();
SqlDSOutstanding.SelectParameters.Add(1,输入code.Int64,3); gvxTaskList.DataSourceID = NULL;
gvxTaskList.DataSource = SqlDSOutstanding;
gvxTaskList.DataBind();
upnlTaskList.Update(); DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1; }
赶上(异常前)
{ }
}
不知道为什么它不工作,但我想有人在那里知道如何做到这一点。鸭preciate的帮助!
和这里的客户端显示该标签的容器是一个更新面板内。
< ASP:的UpdatePanel ID =upnlDispatch的UpdateMode =条件=服务器>
<&触发器GT;< /触发器>
<&的ContentTemplate GT;
< ajaxToolkit:TabContainer的ID =DispatchTabs=服务器HEIGHT =100%WIDTH =100%的CssClass =标签ActiveTabIndex =0>
< ajaxToolkit:ID的TabPanel =tabDashboard=服务器的HeaderText =仪表盘WIDTH =100%HEIGHT =100%>
<&HeaderTemplate中GT;
仪表板
< / HeaderTemplate中>
<&的ContentTemplate GT;
< ASP:的UpdatePanel ID =upnlDashboard的UpdateMode =条件=服务器>
<&的ContentTemplate GT;
把标签容器更新面板内应该做的伎俩。此外,目前的code有一个缺陷,你不希望永远只加1 ActiveIndex标签,因为如果你超越最后一个,你会得到一个超出范围的异常。
如果(DispatchTabs.ActiveTabIndex == DispatchTabs.Count()-1)
{
DispatchTabs.ActiveTabIndex = 0;
}
其他
{
DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;
}
I have a set of tabs in a tab container that I can move between freely by manually clicking on the tabs or by using a javascript; however, what I want to do is to switch between tabs using an ASP.NET serverside button.
So here's the layout. Tab 1 has an ASP.NET Button, which, when clicked, should go to Tab 2 and display the results of a query in a gridview. Here is the onclick code for the ASP.NET Button:
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)
{
}
}
Not sure why its not working, but i imagine someone out there knows how to do it. Appreciate the help!
And here is the client side showing that the tab container is inside an update panel.
<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>
Putting the tab container within an update panel should do the trick. Also, currently your code has a flaw, you don't want to always just add 1 to the ActiveIndex tab because you will get an out of range exception if you go beyond the last one.
if(DispatchTabs.ActiveTabIndex == DispatchTabs.Count() -1)
{
DispatchTabs.ActiveTabIndex = 0;
}
else
{
DispatchTabs.ActiveTabIndex = DispatchTabs.ActiveTabIndex + 1;
}
这篇关于如何切换到不同的AJAX上的ASP.NET按钮服务器端的点击?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!