Asp.Net GridView Удалить Html Styling - PullRequest
       16

Asp.Net GridView Удалить Html Styling

6 голосов
/ 21 августа 2009

Когда я использую вид сетки в Asp.Net, он автоматически генерирует этот уродливый стиль HTML: cellspacing = "0" rules = "all" border = "1" стиль = "границы коллапса: крах;

Есть ли способ вообще не иметь этот стиль?

UPDATE

В настоящее время я получил:

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

Что я хочу:

<table id="ctl00_cphMain_gvTest">

Так что, нет стиля HTML вообще. Я хочу чистый HTML, я буду использовать CSS, если я хочу добавить стиль ...

Ответы [ 5 ]

8 голосов
/ 21 августа 2009

Посмотрите на CSS-дружественные адаптеры управления ASP.NET 2.0 на веб-сайте ASP.NET.

Он не только удаляет большинство уродливых атрибутов, но также добавляет теги thead и tbody.

3 голосов
/ 21 августа 2009

Вы можете просто использовать файл скина (темы), например ::100100

<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" />
...
1 голос
/ 12 апреля 2016

Уважаемый, чтобы удалить автоматический рендеринг cellpadding="0", что он не совместим с Html5, я установил атрибут cellspacing в -1 в разметке GridView или в коде.

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

PS: я использую .NET 4.5.

0 голосов
/ 16 ноября 2017

Добавление:

CellSpacing="-1" GridLines="None"

Значительно очистит разметку, генерируя это на веб-странице:

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

В настоящее время нет способа избавиться от окончательной границы = "0", но вышеупомянутая техника значительно очищает таблицу.

0 голосов
/ 18 декабря 2015

Это работает для меня:

GridView1.GridLines = GridLines.None;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...