当我在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 ...
答案 0 :(得分:8)
查看ASP.NET网站上的CSS friendly ASP.NET 2.0 Control Adapaters。
它不仅删除了大部分丑陋的属性,还添加了thead
和tbody
标记。
答案 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”,但上述技术确实大大清理了表格。