Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Ajax选项卡控件中的选项卡更改事件_Asp.net_Ajax_Postback - Fatal编程技术网

Asp.net Ajax选项卡控件中的选项卡更改事件

Asp.net Ajax选项卡控件中的选项卡更改事件,asp.net,ajax,postback,Asp.net,Ajax,Postback,我在我的一个页面中使用了Ajax选项卡控件。它有一个主用户控件,其中有三个选项卡。 这三个选项卡由三个单独的用户控件填充。 这些用户控件有一些控件和一个保存按钮来保存数据。 我的问题是,如果用户在当前选项卡用户控件中有任何未保存的更改,我必须阻止用户离开选项卡。我必须在弹出窗口中问他您有未保存的更改,是否要保存这些更改。并根据用户的反应采取进一步的后续行动。 我可以使用TabControl的OnClientActiveTabChanged事件打开弹出窗口并询问未保存的更改。我面临的问题是如何准确

我在我的一个页面中使用了Ajax选项卡控件。它有一个主用户控件,其中有三个选项卡。 这三个选项卡由三个单独的用户控件填充。 这些用户控件有一些控件和一个保存按钮来保存数据。 我的问题是,如果用户在当前选项卡用户控件中有任何未保存的更改,我必须阻止用户离开选项卡。我必须在弹出窗口中问他您有未保存的更改,是否要保存这些更改。并根据用户的反应采取进一步的后续行动。 我可以使用TabControl的OnClientActiveTabChanged事件打开弹出窗口并询问未保存的更改。我面临的问题是如何准确地知道哪个选项卡的数据未保存。我无法跟踪当前选项卡,用户正试图从中导航。是否有人可以帮助我始终维护当前选项卡的名称,以便每当用户单击任何其他选项卡时,我都知道必须保存哪个选项卡的数据,并可以从主用户控件启动相应用户控件的保存功能

请查找以下相同的代码示例:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MasterUserControl.ascx.cs"
    Inherits="TabbedSolution.MasterUserControl" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Src="UserControl1.ascx" TagName="UserControl1" TagPrefix="uc1" %>
<%@ Register Src="UserControl2.ascx" TagName="UserControl2" TagPrefix="uc2" %>
<%@ Register Src="UserControl3.ascx" TagName="UserControl3" TagPrefix="uc3" %>
<div>
    <asp:TabContainer ID="TabContainer1" runat="server" 
    AutoPostBack="true" OnClientActiveTabChanged="chechUnsavedChanges" OnActiveTabChanged="tabChanged">
        <asp:TabPanel ID="TabPanel1" runat="server" HeaderText="Panel1" >
            <ContentTemplate>
                <uc1:UserControl1 ID="UserControl11" runat="server" />
            </ContentTemplate>
        </asp:TabPanel>
        <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="Panel2">
            <ContentTemplate>
                <uc2:UserControl2 ID="UserControl21" runat="server" />
            </ContentTemplate>
        </asp:TabPanel>
        <asp:TabPanel ID="TabPanel3" runat="server" HeaderText="Panel3">
            <ContentTemplate>
                <uc3:UserControl3 ID="UserControl31" runat="server" />
            </ContentTemplate>
        </asp:TabPanel>
    </asp:TabContainer>
</div>

在你的javascript函数中试试这个

var container = $find('TabContainer1');
var activeTab = container.get_activeTabIndex(); 
我不知道没有jquery怎么办,但是为什么不使用jquery就使用javascript呢


ps:我还没有测试过这个解决方案,但它应该可以工作

在你的javascript函数中试试这个

var container = $find('TabContainer1');
var activeTab = container.get_activeTabIndex(); 
我不知道没有jquery怎么办,但是为什么不使用jquery就使用javascript呢


ps:我还没有测试过这个解决方案,但它应该可以工作,在我看来,如果你能获得当前活动的选项卡索引并将其存储在会话中,那么它应该可以工作。这是我为multiview activeviewindex等执行的操作。asp.net控件的onclick事件。我获取页面加载完成事件上的值,以在刷新时保存用户当前视图等

我发现,使用带有更新面板和一点图形化的multiview,使其看起来像一个选项卡,您可以创建一个选项卡控件,该控件可以有可单击的链接按钮,这样您就可以这样设置会话。。。。设置onclick并在加载时检索完成

例:
Session(“whichTab”)=myTabControl.activetabindex
whatever=Session(“whichTab”)
当前页面加载完成

注意:我在VB.net代码中完成了所有这些

当用户更改选项卡时,这将告诉您他或她以前在哪个选项卡上。当然,你必须为你的应用找到最好的方法,看看选项卡控件选项卡似乎没有服务器端点击事件,我改为多视图。如果有人可以纠正我的点击事件,请这样做。虽然我刚刚开始使用它,但我还没有真正查看控件的规格,这就是我如何做到这一点的


希望这能有所帮助。

在我看来,如果您可以获取当前活动的选项卡索引并将其存储在会话中,这应该会起作用。这是我为multiview activeviewindex等执行的操作。asp.net控件的onclick事件。我获取页面加载完成事件上的值,以在刷新时保存用户当前视图等

我发现,使用带有更新面板和一点图形化的multiview,使其看起来像一个选项卡,您可以创建一个选项卡控件,该控件可以有可单击的链接按钮,这样您就可以这样设置会话。。。。设置onclick并在加载时检索完成

例:
Session(“whichTab”)=myTabControl.activetabindex
whatever=Session(“whichTab”)
当前页面加载完成

注意:我在VB.net代码中完成了所有这些

当用户更改选项卡时,这将告诉您他或她以前在哪个选项卡上。当然,你必须为你的应用找到最好的方法,看看选项卡控件选项卡似乎没有服务器端点击事件,我改为多视图。如果有人可以纠正我的点击事件,请这样做。虽然我刚刚开始使用它,但我还没有真正查看控件的规格,这就是我如何做到这一点的


希望这能有所帮助。

谢谢你的决心,但还是没有运气。。我试过了。PFb函数:函数checkUnsavedChanges(){debugger;var container=document.getElementById(“”);var container1=$find(“”);var container2=$find('TabContainer1');var activeTab=container.get_activeTabIndex();警报(容器);警报(容器1);警报(container2);}警报没有结果您是否尝试了警报(container.toString());或警报(JSON.stringify(容器));或警报(activeTab.toString());也许如果我周末有时间,我会自己尝试一下,我现在正在工作:是的,当然。。没有问题。将使用.ToString()尝试什么。我也会在这方面再尝试一次这一次终于成功了。。除了这个,我们还需要修复一些东西,但这个是关键组件。谢谢。谢谢你的决心,但还是不走运。。我试过了。PFb函数:函数checkUnsavedChanges(){debugger;var container=document.getElementById(“”);var container1=$find(“”);var container2=$find('TabContainer1');var activeTab=container.get_activeTabIndex();警报(容器);警报(容器1);警报(container2);}警报没有结果您是否尝试了警报(container.toString());或警报(JSON.stringify(容器));或警报(activeTab.toString());也许如果我周末有时间,我会自己尝试一下,我现在正在工作:是的,当然。。没有问题。将使用.ToString()尝试什么。我也会在这方面再尝试一次这一次终于成功了。。除了这个,我还得再修一些东西,但这个是