2017-06-19 29 views
0

パネル間を移動するときにスクリプトが実行されないという問題があります。 F5キーを押すと実行されます。TabPanelをクリックすると、ページが要素を非表示にしない

<asp:Panel ID="pProductList" runat="server"> 
        <asp:TabContainer ID="tabProductList" runat="server" ActiveTabIndex="0" OnActiveTabChanged="tabProductList_ActiveTabChanged" AutoPostBack="true"> 
         <asp:TabPanel ID="TabProductListCatalog" runat="server" HeaderText="<%$ Resources: Resource, TabProductListCatalog %>"> 
         </asp:TabPanel> 
         <asp:TabPanel ID="TabProductListPicture" runat="server" HeaderText="<%$ Resources: Resource, TabProductListPicture %>"> 
         </asp:TabPanel> 
         <asp:TabPanel ID="TabProductListList" runat="server" HeaderText="<%$ Resources: Resource, TabProductListList %>"> 
         </asp:TabPanel> 
        </asp:TabContainer> 
       </asp:Panel> 

とボタンでProductListTable.ascx:うまくいかない

<th class="products text-right"> 
      <asp:Button ID="btIntoBasketAll" runat="server" onclick="btIntoBasketAll_Click" CssClass="btn btn-basic btn-sm" ToolTip="<%$ Resources: Resource, BasketAfterInsertAllTitle %>" Text="<%$ Resources: Resource, BasketAfterInsertTitle %>" visible='true' />     
       </th> 

スクリプトが(の底部に配置された 私は私のようなTabPanelsを持ってProductList.aspxファイルを持っていますProductListTable.ascx):

<script type ="text/javascript"> 
       if ($('#AddToBasket').is(':visible')) { 
        document.getElementById('<%=btIntoBasketAll.ClientID%>').style.visibility = 'visible'; 
      } else { 
       document.getElementById('<%=btIntoBasketAll.ClientID%>').style.visibility = 'hidden'; 
      } 
     </script> 

パネル「AddToBasket」が非表示になります。これは動作しますが、F5を押すだけです。パネル間を移動するたびに、このスクリプトは実行されません。

答えて

0

使用:表示:可視性の代わりにnone:非表示 と表示:visiblilityの代わりにブロック:visible。

0

これは、コードを実行する唯一の時間なので、ページを更新するときに機能します。

TabPanelをクリックするたびにこのコードを実行したい場合、関数内のコードをラップすると、その関数をTabPanelのonclick属性に追加できます。

<script type ="text/javascript"> 
    function tabPanelClicked(){ 
     if ($('#AddToBasket').is(':visible')) { 
      document.getElementById('<%=btIntoBasketAll.ClientID%>').style.visibility = 'visible'; 
     } else { 
      document.getElementById('<%=btIntoBasketAll.ClientID%>').style.visibility = 'hidden'; 
     } 
    } 
    tabPanelClicked(); 
</script> 

ProductList.aspx

<asp:TabPanel ID="TabProductListCatalog" runat="server" HeaderText="<%$ Resources: Resource, TabProductListCatalog %>" onclick="tabPanelClicked()"> 

すべてTabPanels

+0

onclick属性を追加します。いいえ、私はタブパネルが選択されるたびにそれを実行したい、このボタンはTapPanelを参照しているファイルであります - ProductListTable.ascx。 –

+0

スクリプトの配置場所はどこですか? ProductList.aspx、またはボタンの場所 - ProductListTable.ascx? (TabPanelはProductList.aspxにあります) –

+0

@JúliusMarkoin 'ProductList.ascx'。このスクリプトは、Webページに1回だけ表示されます。ページの読み込みが終了したときにそれを実行するには、ページの最後にそれを置き、関数の定義の後に 'tabPanelClicked();'を追加します。 – Titus

関連する問題