我有一个gridview可以显示数据库中的一些数据。
显示价格的单元格为 Style ='hidden'。
在同一列中是一个Linkbutton,当我按下它时,它运行一个javascript函数 ShowPrice()以显示价格,隐藏其自身并显示第二个Linkbutton,当我单击它时,它运行一个javascript函数< b> 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函数是
<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>