我有一个包含按钮的ASP.NET页面,一个AjaxToolKit TabControl和两个TabPanel。如果选择并禁用选项卡#0,我希望启用该按钮,如果选择/激活任何其他选项卡。
但是,我甚至没有得到正确编译的代码。
我的尝试是
<asp:Content ID="Foobar" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server">
<script type="text/javascript">
function CanSave(sender,e)) {
var tabContainer = window.$get('<%=tcMain.ClientID%>');
if (tabContainer != undefined && tabControl != null) {
tabContainer = tabControl.control;
document.getElementById('<%=ButtonSave.ClientID %>').disabled = (tabContainer.ActiveTabIndex == 0);
}
}
</script>
<asp:Button ID="ButtonSave" runat="server" Enabled="false" OnClick="ButtonSave_Click" Text="Save" Width="8.8em" />
<ajaxToolkit:TabContainer runat="server" ID="tcMain" OnActiveTabChanged="CanSave">
<ajaxToolkit:TabPanel ID="tpOne" runat="server" HeaderText="One">
<ContentTemplate>
...
</ContentTemplate>
<ajaxToolkit:TabPanel ID="tpTwo" runat="server" HeaderText="Two">
<ContentTemplate>
...
</ContentTemplate>
</ajaxToolkit:TabContainer>
</asp:Content>
脚本编写的东西都是从互联网上收集的。我不得不承认,我对jscript,ASP.NET等一无所知,但我必须找到一种方法来切换该按钮ButtonSave
的可见性。
请给我一些正确方向的提示。提前致谢。
答案 0 :(得分:1)
OnActiveTabChanged
不是客户端事件。您必须在代码后面的代码中编写代码才能使用。请注意,此事件将导致PostBack并在选项卡更改时刷新页面。
protected void tbcRatingMaster_ActiveTabChanged(object sender, EventArgs e)
{
if (tbcRatingMaster.ActiveTabIndex == 0) //First tab
{
ButtonSave.Enabled = false;
}
}
答案 1 :(得分:0)
这是我的解决方案。诀窍是使用OnClientActiveTabChanged
事件。很明显,不是吗?
<asp:Content ID="Foobar" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server">
<script type="text/javascript">
function CanSave(sender,e)) {
var tabContainer = window.$get('<%=tcMain.ClientID%>');
if (tabContainer != undefined && tabControl != null) {
tabContainer = tabControl.control;
document.getElementById('<%=ButtonSave.ClientID %>').disabled = (tabContainer.get_activeTabIndex() == 0);
}
}
</script>
<asp:Button ID="ButtonSave" runat="server" Enabled="false" ... />
<ajaxToolkit:TabContainer
runat="server"
ID="tcMain"
OnClientActiveTabChanged="CanSave">
...