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