0

ボタン、AjaxToolKit TabControl、および 2 つの TabPanels を含む ASP.NET ページがあります。タブ#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

正しい方向へのヒントを教えてください。前もって感謝します。

4

2 に答える 2

1

OnActiveTabChangedクライアント側のイベントではありません。これを機能させるには、コード ビハインド ファイルにコードを記述する必要があります。タブが変更されると、このイベントによって PostBack が発生し、ページが更新されることに注意してください。

protected void tbcRatingMaster_ActiveTabChanged(object sender, EventArgs e)
{
 if (tbcRatingMaster.ActiveTabIndex == 0) //First tab
 {
   ButtonSave.Enabled = false;
 }
}
于 2013-04-08T11:32:53.880 に答える
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">

...

于 2013-04-08T13:53:20.123 に答える