Gridview CSS边框不一致

时间:2009-12-08 01:35:32

标签: asp.net css gridview cross-browser border

这真让我烦恼。我正在使用GridView并希望以这样的方式对其进行格式化,使得边框在所有浏览器中显示相同。目前,我在IE,FF和Chrome之间的结果各不相同。我不确定我在CSS中做错了什么(我对CSS很新)但是必须正确,因为其中一个浏览器随时都能正确显示边框。 gridview CSS如下:

.gridViewData
{
    height:auto;
    width:544px;
    position:relative;

    text-align:center;

     background-color:#7D9EBA;
     border:solid thin black;
     border-right:none 0px black;



}

.gridViewData td 
{
    padding:2px;
    border-top-style:none;
    border-bottom-style:solid;
    border-left-style:solid;
    border-right-style:none;
    border-color:Black;
    border-width:thin;



}

.gridViewData th
{
    height:10px;
    width: 544px;
    position:relative;
    text-align:center;
    border-top-style:dashed;
    border-bottom-style:solid;
    border-left-style:solid;
    border-right-style:none;
    border-color:Black;
    border-width:thin;
    background-color:white;


}

.gridViewData .alt
{
     background-color:Red; 
}

.gridViewData .pgr 
{ 
    background-color:Orange; 
}

我希望桌子看起来像这幅粗略的绘图:D。标题在单元格之间应该没有边框。

 ____________________________
|____________________________|
|___|__________|________|____|
|___|__________|________|____|
|___|__________|________|____|

在IE中,标题没有顶部边框。在FF中,它看起来很好,在Chrome中标题中有分隔符。 这已经困扰了我一段时间,所以希望有人可以对此有所了解。

由于

1 个答案:

答案 0 :(得分:3)

使用GridView属性来实现此目的,而不是将CSS应用于生成的表元素。例如,可以通过将CSS应用于属性来设置标题样式:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.headerstyle.aspx

修改

请注意,声明性bordercolor属性添加内联样式声明,该声明仅适用于表本身,而不适用于单个单元格。以编程方式添加bordercolor属性不使用内联样式,而是使用HTML bordercolor属性,这些属性适用于表中的所有边框:

OnRowDataBound="MyGrid_RowDataBound"

protected void MyGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
     foreach (TableCell tc in e.Row.Cells)
     {
         tc.Attributes["style"] = "border-color: #000";
     }
} 

我发布了一篇关于此事的博客文章 - 查看Lee Dumond的评论:

http://www.codersbarn.com/post/2009/05/31/Set-Color-of-GridLines-in-Gridview.aspx#comment