单击TabPanel时,页面不隐藏元素

时间:2017-06-19 07:25:57

标签: javascript jquery asp.net tabpanel

在面板之间移动时脚本无法执行的问题。它只在按下F5时执行。 我有ProductList.aspx文件,我有TabPanels,如:

<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>

脚本不能很好地工作(放在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>

Panel&#34; AddToBasket&#34;隐藏和显示。这有效,但只按F5。每当我在Panels之间移动时,看起来这个脚本都没有执行。

2 个答案:

答案 0 :(得分:0)

使用:display:none而不是visibility:hidden 并显示:阻止而不是可见性:可见。

答案 1 :(得分: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()">

onclick属性添加到所有TabPanels