2

由于某种原因,当我在 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>
4

2 回答 2

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属性。设置 cssborder属性定义了边框的外观。

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

填充是在具有标准属性 的thandtd元素上定义的。padding

间距是通过适当的表格上的组合border-spacingborder-collapse: separate属性完成的。顺便说一句,这是一种不寻常的做法——大多数人都使用border-collapse: collapse并且没有边框间距。

ridge边框样式似乎没有得到很好的支持。IE 和 FF 这样做但不同。Chome只是把它画得很扎实。

您也可以通过为诸如此类的事物定义 css 类RowStyle并设置适当的属性来将其他一些属性移动到样式表中。

于 2014-06-17T19:58:47.100 回答
0

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

CssClass="网格"

并为其添加样式

 <style type="text/css"> 
       table.grid{ 
           border-collapse:collapse; 
           border:solid 2px black; 
        } 
        table.grid td, th{ 
           border:solid 2px black; 
        } 
    </style>
于 2014-06-17T19:25:37.990 回答