我的网络表单上有一个ajax:TabContainer
,TabPanel
中有TabContainer
个TabPanel
。
当用户点击第二个TabPanel
时,我需要调用服务器端方法。当用户点击第一个TabPanel
时,它会注意到,当用户点击第二个void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
{
//Code goes here
}
时,它会触发一些服务器端代码。
为此,我尝试使用ActiveTabChanged和OnClientActiveTabChanged。
function fireChangedEvent(sender, e) {
if (sender.get_activeTabIndex() == 1) {
return false;
}
else {
return true;
}
}
TabContainer1_ActiveTabChanged
但是,每当用户点击任何标签时,它都无法启动{{1}}。 当我不需要每次用户点击任何标签时,任何人都可以指导我如何触发此事件吗?
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
最后我找到了这个问题的解决方案。我们可以使用更新面板和触发器来进行服务器端方法的条件调用。
由Matt Berseth
How To: Lazy-load TabPanel's within the AjaxControlToolkit's TabContainer Control
现在我的问题已经解决了。
答案 2 :(得分:1)
TabContainer的工作方式与任何下拉列表,复选框等一样..因为它需要将“autopostback”参数设置为true:
<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2" Width="920px"
AutoPostBack="True">