1

我有一个ajax:TabContainer在我的网络表格和 2TabPanelTabContainer。当用户单击第二个时,我需要调用服务器端方法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。当我不需要每次用户单击任何选项卡时,任何人都可以指导我如何触发此事件吗?

4

3 回答 3

1

如果我理解正确,您可以通过为您的 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
}
}
于 2013-07-31T09:29:42.567 回答
1

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

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

现在我的问题解决了。

于 2013-07-31T10:11:23.223 回答
1

TabContainer 的工作方式与任何下拉列表、复选框等类似,因为它需要将“autopostback”参数设置为 true :

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2" Width="920px"
                                    AutoPostBack="True">
于 2013-10-01T08:13:00.700 回答