如何有条件地激发ajax的ActiveTabChanged事件:Tabcontainer



我的web表单上有一个ajax:TabContainerTabContainer中有两个TabPanel。当用户单击第二个TabPanel时,我需要调用服务器端方法。当用户单击第一个TabPanel时,它将进行注释,当用户单击第二个TabPanel时,它会激发一些服务器端代码。

为此,我尝试使用ActiveTabChanged和OnClientActiveTabChanged。

服务器端代码

void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
{
    //Code goes here
}

JavaScript代码

function fireChangedEvent(sender, e) {
    if (sender.get_activeTabIndex() == 1) {
        return false;
    }
    else {
        return true;
    }
}

但它并不是每次用户点击任何选项卡都能工作,它会触发TabContainer1_ActiveTabChanged。有人能指导我如何在不需要的时候触发这个事件吗?

如果我得到了正确的答案,您可以通过为asp:TabPanel指定TabIndex来实现这一点。

<asp:TabPanel id="tab1" TabIndex=1>
<asp:TabPanel id="tab2" TabIndex=2>

然后

void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
{
    if(TabContainer.ActiveTabIndex == 2){
    //Code hereTabContainer
}
}

TabContainer的工作原理与任何下拉列表、复选框等类似。因为它需要将"autopostback"参数设置为true:

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2" Width="920px"
                                    AutoPostBack="True">

最后我找到了这个问题的解决方案。我们可以使用更新面板和触发器对服务器端方法进行条件调用。Matt Berseth 发布的解决方案

如何:在AjaxControlToolkit的TabContainer Control 中延迟加载TabPanel

现在我的问题解决了。

相关内容

  • 没有找到相关文章

最新更新