如何在GridView中显示gridLines

时间:2014-06-17 18:37:07

标签: asp.net gridview gridlines

由于某种原因,当我在IE或Chrome中打开gridview时,我的网格线没有显示。我已将gridLines属性设置为Both。

<asp:GridView ID="GridView1" runat="server"  OnSelectedIndexChanged="GridView1_SelectedIndexChanged" BorderColor="Black" AutoGenerateColumns="True" Height="350px" ShowFooter="True" AllowSorting="True" BackColor="Black" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" CellSpacing="3" GridLines ="Both">


        <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />


        <HeaderStyle Font-Size="7pt" Width="400px" BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" >
        </HeaderStyle>


        <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
        <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
        <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#F1F1F1" />
        <SortedAscendingHeaderStyle BackColor="#594B9C" />
        <SortedDescendingCellStyle BackColor="#CAC9C9" />
        <SortedDescendingHeaderStyle BackColor="#33276A" />


    </asp:GridView>

2 个答案:

答案 0 :(得分:4)

设置GridLines会使用rules属性呈现该表,这是旧的处理方式,不再受支持。你现在想用css来造型。这相当于您的样本:

  <style type="text/css">
    .GridView1 { border-spacing: 3px; border-collapse: separate; }
    .GridView1 > tbody > tr > th, 
    .GridView1 > tbody > tr > td { border: 2px ridge black; padding: 3px; }
  </style>

  <asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ShowFooter="True" AllowSorting="True" AutoGenerateColumns="True"
    Height="350px" BackColor="Black" 
    CssClass="GridView1" GridLines="none" CellPadding="-1" CellSpacing="-1">
    <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
    <HeaderStyle Font-Size="7pt" Width="400px" BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF"></HeaderStyle>
    <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
    <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
    <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#F1F1F1" />
    <SortedAscendingHeaderStyle BackColor="#594B9C" />
    <SortedDescendingCellStyle BackColor="#CAC9C9" />
    <SortedDescendingHeaderStyle BackColor="#33276A" />
  </asp:GridView>

GridLines="none"消除了rules属性。设置css border属性可定义边框的外观。

cellpaddingcellspacing设置为-1会消除旧式表格属性。

在具有标准th属性的tdpadding元素上定义了填充。

使用表格中的border-spacingborder-collapse: separate组合属性完成间距。这有点不寻常 - 大多数人使用border-collapse: collapse并且没有边框间距。

似乎没有很好地支持ridge边框样式。 IE和FF做的却不同。 Chome只是把它画得很稳固。

您还可以通过为RowStyle等内容定义css类并设置相应的属性,将其他一些属性移动到样式表。

答案 1 :(得分:0)

这很奇怪,但你可以尝试这样的事情 为你的网格设置一个CssClass

  

的CssClass =&#34;网格&#34;

并为其添加样式

 <style type="text/css"> 
       table.grid{ 
           border-collapse:collapse; 
           border:solid 2px black; 
        } 
        table.grid td, th{ 
           border:solid 2px black; 
        } 
    </style>