<asp:GridView ID="GridView3" runat="server">  <Columns>
                  <asp:TemplateField>
                <HeaderTemplate>
                    <asp:CheckBox ID="cbSelAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="cbSelAll_CheckedChanged" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="cbSel" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
 </Columns>
                  <EmptyDataRowStyle BackColor="White" HorizontalAlign="Center" />
              </asp:GridView>我想用javascript 
document.getElementById("<%=GridView.ClientID%>") 来隐藏    <HeaderTemplate> 和<ItemTemplate>
如何解决? 谢谢各位!

解决方案 »

  1.   

    整个gridview都隐藏吗?在外层加个div好了,直接隐藏外层div
      

  2.   

    不是隐藏整个gridview  只是隐藏那一列..  <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbSelAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="cbSelAll_CheckedChanged" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="cbSel" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
    只是还有其它代码没贴上来.怕看得乱
      

  3.   

    是点ID 为cbSelAll的隐,还是点ID为cbSel的隐,你要说清楚,隐一列,还是隐一行
      

  4.   

    你的意思是如果点全选的话就把所有的CheckBox隐藏吗?
      

  5.   

    我现在有一个gridview   显示的是人员的列表..   还有一个Html   button   要求是..   当我点击了 <input   type=button/>   后.   gridview   能够显示出 <asp:CheckBox   > 选项框..   未点击 <input   type=button/> 时   <asp:CheckBox   > 选项框   是隐藏的..(我的问题只是反过来问)...     我是要求在不刷新的页面的情况下实现这种情况... 
      

  6.   

    完全隐掉有点难,可以让那一列还在,但不显示东西。
    把HeaderTemplate和ItemTemplate的内容隐掉。如果gridview没有竖线网格,效果比较好.            <asp:TemplateField>
                    <HeaderTemplate>
                        <div id="header">
                        <asp:CheckBox ID="cbSelAll" runat="server" Text="全选"/>
                        </div>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <div id="item">
                        <asp:CheckBox ID="cbSel" runat="server" />
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>        function Hidden(){
                var items= document.getElementsByName('item');
                for(var i=0;i<items.length;i++){
                    items[i].style["display"]="none";
                }
                document.getElementById('header').style["display"]="none";
            }
      

  7.   

    点击一个按钮...能够把gridview 的所有选项框这一列都隐掉~ 又或者把gridview 的所有选项框这一列都显示出来(之前先设这一列为隐藏)   都行... 能隐就肯定能显.... 
      

  8.   

    for(var   i=0;i <document.form1.elements.length;i++) 
                { 
                          if   (document.form1.elements[i].type=="checkbox") 
                        { 
                                document.frmData.elements[i].style.display="block"; 
                                //如果不是visible就是display,楼主多尝试。 搂住的另一个帖子我回复的是visble  
                        }               }
      

  9.   

    xiaoqhuang  
        看了你的..还没试
     你讲的有点道理. 在模版上加个<div>可以解决选项框不出现的问题. 但那块底版HeaderTemplate和ItemTemplate还在.. 影响了外观.. 还有更好的法子吗? ...  能够完全控制就最好不过啦.
      

  10.   

    zhuanshen712  你这样的跟 .xiaoqhuang  效果一样.. 只是让html 元素 隐藏了... 也许我不需要循环. 只需把 整个div 隐掉更省事..还有其它更好的方法吗?
      

  11.   

    这种效果是你所要的吗,测试通过,你试下
    这是前台的<%@ Page Language="C#" AutoEventWireup="true" CodeFile="demo_gridview.aspx.cs" Inherits="codeexample_demo_gridview" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script>
             //当复选筐里面的Checked默认为True如何在点击复选筐时隐藏这一行用js就能实现,你写个js函数 
            function  hide() 
            { 
                var   grd   =   document.getElementById("GridView1"); 
                var   chkArr   =   grd.getElementsByTagName("input"); 
                for(var   i   =0;   i< chkArr.length;   i++)  { 
                            if(chkArr[i].type   ==   "checkbox"   &&   
                                    chkArr[i].id.indexOf("one") > -1)   { 
        
                                    chkArr[i].style["display"]="none";
                            } 
                            if(chkArr[i].id.indexOf("all") > -1)  { 
      
                                    chkArr[i].style["display"]="none";
                            } 
                    } 
            } 
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Button1" type="button" value="button" onclick="hide();"/>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
              <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:CheckBox ID="all" runat="server"/>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="one" runat="server"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="ID" HeaderText="ID" />
                        <asp:BoundField DataField="USERNAME" HeaderText="Name" />
                    </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
      

  12.   

    不变色,这种效果是你所要的吗,测试通过,你试下
    这是前台的<%@ Page Language="C#" AutoEventWireup="true" CodeFile="demo_gridview.aspx.cs" Inherits="codeexample_demo_gridview" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script>
             //当复选筐里面的Checked默认为True如何在点击复选筐时隐藏这一行用js就能实现,你写个js函数 
            function  hide() 
            { 
                var   grd   =   document.getElementById("GridView1"); 
                var   chkArr   =   grd.getElementsByTagName("input"); 
                for(var   i   =0;   i< chkArr.length;   i++)  { 
                            if(chkArr[i].type   ==   "checkbox"   &&   
                                    chkArr[i].id.indexOf("one") > -1)   { 
        
                                    chkArr[i].style["display"]="none";
                            } 
                            if(chkArr[i].id.indexOf("all") > -1)  { 
      
                                    chkArr[i].style["display"]="none";
                            } 
                    } 
            } 
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Button1" type="button" value="button" onclick="hide();"/>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
              <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:CheckBox ID="all" runat="server"/>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="one" runat="server"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="ID" HeaderText="ID" />
                        <asp:BoundField DataField="USERNAME" HeaderText="Name" />
                    </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
      

  13.   


    测试通过,看是你要的效果吗
    不变色,这种效果是你所要的吗,测试通过,你试下
    这是前台的<%@ Page Language="C#" AutoEventWireup="true" CodeFile="demo_gridview.aspx.cs" Inherits="codeexample_demo_gridview" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script>
             //当复选筐里面的Checked默认为True如何在点击复选筐时隐藏这一行用js就能实现,你写个js函数 
            function  hide() 
            { 
                var   grd   =   document.getElementById("GridView1"); 
                var   chkArr   =   grd.getElementsByTagName("input"); 
                for(var   i   =0;   i< chkArr.length;   i++)  { 
                            if(chkArr[i].type   ==   "checkbox"   &&   
                                    chkArr[i].id.indexOf("one") > -1)   { 
        
                                    chkArr[i].style["display"]="none";
                            } 
                            if(chkArr[i].id.indexOf("all") > -1)  { 
      
                                    chkArr[i].style["display"]="none";
                            } 
                    } 
            } 
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Button1" type="button" value="button" onclick="hide();"/>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
              <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <asp:CheckBox ID="all" runat="server"/>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="one" runat="server"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="ID" HeaderText="ID" />
                        <asp:BoundField DataField="USERNAME" HeaderText="Name" />
                    </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    [code=C#]
    [/code]
      

  14.   

    给你一个参考<script language='javascript'>
    function HideColumn(r)
    {
      var root = r.parentNode;
      root.removeChild(r);
    }
    </script>
    <table border=1 width=400 id=tblAAA>
     <tr>
      <td>123</td>
      <td><input type='button' value='HideColumn' onclick='HideColumn(this.parentNode)'/></td>
      <td><input type='button' value='HideColumn' onclick='HideColumn(this.parentNode)'/></td>
      <td><input type='button' value='HideColumn' onclick='HideColumn(this.parentNode)'/></td>
     </tr>
    </table>
      

  15.   

    用javascript改,postback之后很可能又回来了,建议还是postback。直接用visible=false;用updatepanel