GridView样式设置-竖线及横线

 

GridView在生成HTML代码的时候会自动加上style="border-collapse:collapse;"以及border=1,rules="all"这些属性,这些在IE下都没什么影响,但是在FF下就会影响显示,style="border-collapse:collapse;";是由于设置了CellSpacing="0"产生的,当设置CellSpacing="1"后就没有,可以去掉style="border-collapse:collapse;";默认情况下CellSpacing="0",所以默认情况下会有style="border-collapse:collapse;"这个属性生成。GridLines="Both"会带来border=1,rules=all这两个属性,设置GridLines="None"后border=0,rules属性则不会出现。

MS默认的GridView生成HTML代码的方式本身就没有去兼容各种浏览器,只是特别照顾了自己的IE,其实MS已经给出了解决办法,那就是自己定义控件如何生成HTML代码,CSS 控件适配器工具包新版发布 介绍如何配置自己的浏览器定义文件。详细的可以参考MSDN:浏览器定义文件架构(browsers 元素)

如何设置GridView让它在IE和FF下都能正常显示呢?下面会进行说明。
1.单元格都有边框线,效果如下:


<asp:GridView ID="GridView1" runat="server" CellPadding="3" GridLines="None" BackColor="Black" CellSpacing="1">
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
            <RowStyle BackColor="#ECF5FF" ForeColor="Black" />
            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
            <HeaderStyle BackColor="#A6CBEF" Font-Bold="True" ForeColor="#404040" BorderColor="#A6CBEF" />
        </asp:GridView>

说明:GridLines="ALL",CellSpacing="0"是造成FF和IE下显示不同的一个很大的原因;其实不进行设置border也是可以达到单元格表现出边框的样式。CellSpacing="1"就控制了单元格之间的间隔是1px,通过设置table的背景和tr的背景来表现出单元格td的border,实际上td的border为0,这个看起来很像的border是table的背景,tr的背景仅仅是改变了td的背景,td之间的space则是根据table的背景显示的,这就是CellSpacing="1"带来的border效果。这样在IE和FF下都能正常显示了。

2.只有横线,没有竖线的效果:

GridView样式如下设置:需要借助额外的css,Gridview自带的类似样式不兼容FF
<style type="text/css">
    .table{border:solid 1px black}
    .table th{border-bottom:solid 1px black;}
    .table td{border-bottom:solid 1px black;}
    </style>
<asp:GridView ID="GridView1" CssClass="table" runat="server" CellPadding="3" GridLines="None" BackColor="#ECF5FF" CellSpacing="0">
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
            <RowStyle BackColor="#ECF5FF" ForeColor="Black" />
            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
            <HeaderStyle BackColor="#A6CBEF" Font-Bold="True" ForeColor="#404040" BorderColor="#A6CBEF" />
        </asp:GridView>

3.只有竖线的效果:

更改上面的<style type="text/css">
    .table{border:solid 1px black}
    .table th{border-right:solid 1px black;}
    .table td{border-right:solid 1px black;}
    </style>即可。
更改table样式为:
table{border:solid 1px black}
    .table th{border:solid 1px black;}
    .table td{border:solid 1px black;}
可以实现第一种的显示效果,这才是真的border

至此,GridView的样式设置告一段落了。上面的设置方法在IE6.0,FF2.0下测试通过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在GridView中,可以通过设置列宽来控制每个列的大小和排列。要设置GridView的列宽,可以使用GridView的columns属性。 首先,在XML布局文件中,定义GridView控件,并给它设置一个唯一的ID,如"myGridView"。接着,在Activity中,找到该GridView控件,并给它设置Adapter。 然后,在代码中,实例化一个GridView对象,通过findViewById方法找到GridView的ID。接着,创建一个Adapter对象,并将其设置GridView的Adapter。最后,通过GridView的columns属性,设定每个列的宽度。 如需设置列宽,可在布局文件的GridView节点中,添加以下属性: android:stretchMode="none" // 默认为列宽平均分配,设置为none后才能调整列宽 然后,在Activity的Java代码中,可以使用GridView的setColumnWidth方法来调整列宽。该方法接受一个整数值作为参数,表示列的宽度,单位为像素。例如,若要将第一列的宽度设置为100像素,则可以通过以下代码实现: myGridView.setColumnWidth(0, 100); 若想要让所有列的宽度都相同,可以使用GridView的setNumColumns方法。该方法接受一个整数值作为参数,表示需要显示的列数。例如,若要显示3列,并且每列的宽度相同,则可以通过以下代码实现: myGridView.setNumColumns(3); 以上是关于如何在GridView设置列宽的简要解释。通过使用GridView的columns属性和相应的方法,可以根据需要自定义每个列的宽度,以实现更好的展示效果。 ### 回答2: GridView是Android开发中常用的控件之一,用于展示数据。在GridView中,我们可以通过设置列宽来控制每个单元格的宽度。 要设置GridView的列宽,可以通过编程方式或者在XML布局文件中进行设置。 如果使用编程方式,我们可以通过获取GridView的列数,并根据列数计算每个单元格的宽度。具体步骤如下: 1.首先,获取GridView的实例。 2.获取GridView的列数。可以使用getNumColumns()方法获得列数。 3.计算每个单元格的宽度。将GridView的宽度除以列数,即可得到每个单元格的宽度。 4.调用setColumnWidth()方法,将计算得到的每个单元格的宽度设置GridView。 如果在XML布局文件中进行设置,可以在GridView标签中添加android:columnWidth属性,来指定每个单元格的宽度。例如,android:columnWidth="100dp"表示每个单元格的宽度为100dp。 需要注意的是,设置列宽时,应该考虑到屏幕的宽度以及每个单元格中的内容。如果列宽设置过小,可能会导致内容无法完全展示;如果列宽设置过大,可能会导致单元格太宽造成空白区域的浪费。因此,合理地设置列宽是很重要的。 综上所述,可以通过编程方式或者在XML布局文件中设置GridView的列宽。根据实际需要,合理地设置列宽可以使GridView的展示效果更加美观和适配不同的屏幕。 ### 回答3: GridView是一个常用的控件,用于显示数据表格。在GridView设置列宽是非常重要的,可以使表格呈现更好的可读性和美观度。 在GridView中,可以通过以下几种方法设置列宽: 1. 使用AutoGenerateColumns属性:GridView的AutoGenerateColumns属性默认为true,可以自动根据数据源生成表格列,并根据数据的内容自动调整列宽。这种方法比较简单,但是可能无法满足个性化需求。 2. 使用列的Width属性:GridView中的各个列都是通过BoundField或TemplateField定义的。可以通过设置列的Width属性来手动控制列的宽度。例如,可以使用Width="100px"来设置某一列的宽度为100像素。 3. 使用CSS样式:可以通过为GridView的各个列定义CSS样式设置列宽。例如,可以定义一个名为"grid-column"的CSS类,然后在GridView的列中使用CssClass属性来引用这个样式。在CSS样式中,可以使用width属性来设置列的宽度。 4. 使用ItemStyle的Width属性:GridView中的ItemStyle属性允许为每一列设置样式。可以通过设置ItemStyle的Width属性来设置列的宽度。例如,可以使用ItemStyle的Width="100px"来设置某一列的宽度为100像素。 总之,在GridView设置列宽可以通过AutoGenerateColumns属性、列的Width属性、CSS样式和ItemStyle的Width属性等多种方式实现。根据具体需求选择适合的方法,可以使表格显示效果更好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值