Asp.Net GridView删除Html样式

时间:2009-08-21 01:27:05

标签: asp.net gridview

当我在Asp.Net中使用网格视图时,它会自动生成这种丑陋的Html样式:cellspacing =“0”rules =“all”border =“1” 风格=“边界崩溃:倒塌;

有没有办法没有这种造型?

更新

目前我得到的是:

<table cellspacing="0" rules="all" border="1" id="ctl00_cphMain_gvTest" style="border-collapse:collapse;">

我想要的是什么:

<table id="ctl00_cphMain_gvTest">

所以,根本没有Html风格。我想要干净的Html,如果我想添加样式,我会使用CSS ...

5 个答案:

答案 0 :(得分:8)

查看ASP.NET网站上的CSS friendly ASP.NET 2.0 Control Adapaters

它不仅删除了大部分丑陋的属性,还添加了theadtbody标记。

答案 1 :(得分:3)

您可以简单地使用皮肤文件(主题),例如:

<asp:GridView runat="server" BorderStyle="None" CellSpacing="5"/>

或者您可以编写ControlAdapter,您可以在其中控制GridView的整个渲染。

public class GridViewAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
{
  protected override void RenderContents(HtmlTextWriter writer)
        {                
                GridView gridView = Control as GridView;
                if (gridView != null)
                {
                    writer.Indent++;
                    WritePagerSection(writer, PagerPosition.Top);

                    writer.WriteLine();
                    writer.WriteBeginTag("table");
                    writer.WriteAttribute("cellpadding", "0");
                    writer.WriteAttribute("cellspacing", "0");
                    writer.WriteAttribute("summary", Control.ToolTip);
...

然后在浏览器文件中添加适配器:

<browsers>
  <browser refID="Default">
    <controlAdapters>    
      <adapter controlType="System.Web.UI.WebControls.GridView"
               adapterType="CSSFriendly.GridViewAdapter" />
...

答案 2 :(得分:1)

Dears,为了删除cellpadding="0"的自动渲染,它不兼容Html5,我在GridView的标记中将属性cellspacing设置为-1或由代码设置。

<asp:GridView runat="server" CellSpacing="-1"/>
Me.GridView.cellspacing = -1

PS:我使用的是.NET 4.5。

答案 3 :(得分:0)

这对我有用:

GridView1.GridLines = GridLines.None;

答案 4 :(得分:0)

添加:

CellSpacing="-1" GridLines="None"

将清除标记,在网页中大大产生这一点:

<table border="0" id="GridView1">

目前无法摆脱最终的Border =“0”,但上述技术确实大大清理了表格。