Javascript 单击链接按钮后的Gridview刷新

Javascript 单击链接按钮后的Gridview刷新,javascript,asp.net,gridview,Javascript,Asp.net,Gridview,我有一个gridview来显示数据库中的一些数据。 显示价格的单元格是Style='hidden' 在同一列中有一个Linkbutton,当我按下它时,它运行一个javascript函数ShowPrice()来显示价格,隐藏自己并使第二个Linkbutton可见,当我单击它时,它运行一个javascript函数HidePrice(),然后隐藏价格,隐藏自己并使第一个Linkbutton可见。 ShowPrice()函数运行并使价格可见,它隐藏Linkbutton并显示第二个Linkbutton,

我有一个gridview来显示数据库中的一些数据。
显示价格的单元格是Style='hidden'
在同一列中有一个Linkbutton,当我按下它时,它运行一个javascript函数ShowPrice()来显示价格,隐藏自己并使第二个Linkbutton可见,当我单击它时,它运行一个javascript函数HidePrice(),然后隐藏价格,隐藏自己并使第一个Linkbutton可见。
ShowPrice()函数运行并使价格可见,它隐藏Linkbutton并显示第二个Linkbutton,但问题是再次隐藏第二个Linkbutton并显示第一个Linkbutton。 我认为这与回发有关,因为相同的代码在普通HTML页面中运行正常。 页面上的代码是

       <asp:TemplateField HeaderText="Price">
            <ItemTemplate>
                <asp:Label ID="lblKostos" runat="server" Text='<%#FormatCurrency(DataBinder.Eval(Container.DataItem, "Price"), 2)%>' Style="visibility: hidden" CssClass="Gshow"></asp:Label>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>

                        <asp:LinkButton ID="Button4" runat="server"  OnClientClick="ShowPrice()" Text=""> <span aria-hidden="true" class="glyphicon glyphicon-question-sign" ></span></asp:LinkButton>
                        <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="HidePrice()" Text="" Style="visibility: hidden"> <span aria-hidden="true" class="glyphicon glyphicon-ok" ></span></asp:LinkButton>

                    </ContentTemplate>
                </asp:UpdatePanel>

            </ItemTemplate>
        </asp:TemplateField>


使用javascript对DOM所做的任何更改都将在回发后丢失。因此,您需要将按钮的状态保存到某个位置,例如HIddenField。并在回发后读取这些值以再次隐藏按钮。是的,我认为这就是问题所在,回发。还有什么不回发的吗?
<script type="text/javascript">
    function ShowPrice() {
        var i;
        var x = document.getElementsByClassName("Gshow");

        for (i = 0; i < x.length; i++) {
            x[i].style.visibility = 'visible';
        }

        var x1 = document.getElementsByClassName("glyphicon glyphicon-question-sign");


        for (i = 0; i < x1.length; i++) {
            x1[i].style.visibility = 'hidden';
        }
        var x2 = document.getElementsByClassName("glyphicon glyphicon-ok");

        for (i = 0; i < x2.length; i++) {
            x2[i].style.visibility = 'visible';
        }
        return true;
    }

    function HidePrice() {

        var x = document.getElementsByClassName("Gshow");
        var i;
        for (i = 0; i < x.length; i++) {
            x[i].style.visibility = 'hidden';
        }
        var x1 = document.getElementsByClassName("glyphicon glyphicon-question-sign");


        for (i = 0; i < x1.length; i++) {
            x1[i].style.visibility = 'visible';
        }

        var x2 = document.getElementsByClassName("glyphicon glyphicon-ok");


        for (i = 0; i < x2.length; i++) {
            x2[i].style.visibility = 'hidden';
        }
        return true;
    }
</script>