无法从asp.net中的java脚本中隐藏标签和网格视图

unable to hide label and gridview from java script in asp.net

本文关键字:隐藏 标签 视图 网格 脚本 java asp net 中的      更新时间:2023-09-26

我想在javascript中隐藏标签网格视图
我成功地隐藏了图像复选框,但还没有隐藏标签以及网格视图
如何使用javascript?

javascript

<script type="text/javascript">
        function txtOnKeyPress(txt1)
         {
            if (txt1 != 'undefined') 
            {
             document.getElementById("GVPaymentDetails").style.display='none';
             document.getElementById('LblValidReg').style.display='none';
            }
         }
    </script>

aspx代码

 <asp:TextBox ID="txtRegno" runat="server"  AutoPostBack="false"
            MaxLength="10"  onkeydown="txtOnKeyPress(this);"></asp:TextBox>

 <asp:GridView ID="GVPaymentDetails" runat="server" AutoGenerateColumns="False" 
            BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" 
            CellPadding="4" GridLines="Horizontal" EmptyDataText="No Records Found">
            <RowStyle BackColor="White" ForeColor="#333333" />
            <Columns>
                <asp:BoundField HeaderText="Enquiry id" DataField="EnquiryId" />
                <asp:BoundField HeaderText="Reg Number" DataField="RegistrationNumber" />
                <asp:BoundField HeaderText="Name" DataField="Name" />
            </Columns>
            <FooterStyle BackColor="White" ForeColor="#333333" />
            <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
        </asp:GridView>
 <asp:Label ID="LblValidReg" runat="server"></asp:Label>

您在.aspx标记中看到的ID不是最终出现在客户端页面上的ID。ASP。NET生成一堆东西来代替这个ID。您可以选择:

  1. 如果您的javascript在同一个.aspx文件中,您可以将客户端ID嵌入其中,如下所示:

    document.getElementById("<%= GVPaymentDetails.ClientID %>").style.display='none';
    
  2. 如果您可以100%保证页面上没有其他具有相同ID的控件,请使用静态ID模式,这将强制ASP。NET在客户端呈现完全相同的ID:

    <asp:GridView ID="GVPaymentDetails" ClientIDMode="Static"
    

    在这种情况下,您的代码将按原样工作:

    document.getElementById("GVPaymentDetails").style.display='none';
    

正如评论中已经指出的,将这些控件包装在某种容器中(如Panel或只是一个div.(会让你的生活更轻松

更新

事实上,如果你只在它们周围放一个简单的div,你就不需要上面的任何技巧:

<div id="GridViewContainerDiv">
    <asp:GridView ID="GVPaymentDetails" ...
    <asp:Label ID="LblValidReg" ...
</div>
document.getElementById("GridViewContainerDiv").style.display='none';
<script type="text/javascript">
    function txtOnKeyPress(txt1)
     {
        if (txt1 != 'undefined') 
        {
         document.getElementById("<%= GVPaymentDetails.ClientId%>").style.display='none';
         document.getElementById('<%= LblValidReg.ClientId%>').style.display='none';
        }
     }
</script>

<asp:GridView ID="GVPaymentDetails" runat="server" AutoGenerateColumns="False" ClientIdMode="static" 

<asp:Label ID="LblValidReg" ClientIdMode="Static" runat="server"></asp:Label>

使用

$("#<%=GVPaymentDetails.ClientID %>").css('display','none');
$("#<%=LblValidReg.ClientID %>").css('display','none');

安装

 document.getElementById("<%= GVPaymentDetails.ClientId%>").style.display='none';
 document.getElementById('<%= LblValidReg.ClientId%>').style.display='none';