【问题标题】:How to set class for thead element in a gridview?如何在gridview中为thead元素设置类?
【发布时间】:2013-09-05 10:24:01
【问题描述】:

我正在尝试为 GridView 设置 THEAD 类,并且我接近拥有一个没有 Class 属性的 Thead 元素并且具有我想要 tr 元素的类名。原因是因为 PDF 生成器会寻找一个 thead 类名并在每一页上生成表头。 PDF 生成器有时会出现渲染 javascript 的问题,所以我更喜欢页面上的纯 html 和 css。

除了数据绑定之外的代码。

GridView1.HeaderRow.TableSection = TableRowSection.TableHeader

aspx

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" HeaderStyle-CssClass="table-header-group">
<Columns>
    <asp:BoundField DataField="Forename" HeaderText="Forename" ItemStyle-Width="150" ItemStyle-CssClass="iClass" />
    <asp:BoundField DataField="Surname" HeaderText="Surname" ItemStyle-Width="150" ItemStyle-CssClass="iClass" />
</Columns>
</asp:GridView>

生成的 HTML

<table class="gvPrinting" cellspacing="0" rules="all" border="1" id="GridView1" style="border-collapse:collapse;">
    <thead>
        <tr class="table-header-group">
            <th scope="col">Forename</th><th scope="col">Surname</th><th scope="col">DOB</th><th scope="col">Session Name</th><th scope="col">Password</th>
        </tr>
    </thead><tbody>
        <tr>
            <td colspan="5">+++</td>
        </tr><tr>

我想要的是:

     <thead class="table-header-group">

【问题讨论】:

  • 您也许可以使用 HeaderStyle。 msdn.microsoft.com/en-us/library/…
  • @Papa 你的意思是 HeaderStyle-CssClass="table-header-group" 我已经在 gridview 中的这一行吗?它只设置 tr 的类而不是 thead 元素。
  • 对不起,好像是一回事。想知道是否可以将类添加到 Pre_Render() 中的元素?
  • OnPreRender。哦是的。 stackoverflow.com/questions/5250258/…
  • 谢谢,@Papa .. 我已经有了那个代码 .. 是的 .. 它添加了一个 thead 元素 .. 但是类属性仍然在 tr 上 ..

标签: asp.net vb.net gridview


【解决方案1】:

在您的页面中,添加此 CSS

.gvPrinting thead{ 写下你需要的样式.. }

或在 document.ready 事件中,,

$('.gvPrinting thead').addClass('table-header-group')

希望这会有所帮助:)

【讨论】:

  • 嗨,Vinay,您好像阅读了标题并写下了您的答案。我试图避免使用 javascript,因为页面需要由 pdf 生成器呈现,并且在 pdf 生成器中打开 javascript 时它的工作速度非常慢。不过还是谢谢。
  • 嗨..检查下面的解决方案..希望它有所帮助。
【解决方案2】:

我的理解是你需要在服务器端代码中为thead元素添加CSSClass,而不是通过javascript或CSS......

为此,请使用以下代码..它对我有用..

        gridview1.HeaderRow.TableSection = TableRowSection.TableHeader; 
        gridview1.FooterRow.TableSection = TableRowSection.TableFooter;
        gridview1.HeaderStyle.CssClass = "table-header-group";

让我知道这是否适合你。抱歉回复晚了。

【讨论】:

  • 嗨@Vinay ..谢谢,但我想我的代码示例中已经有这些了..我在aspx页面中设置了CssClass,你的示例在后面的代码中..它应该做同样的事情工作..它没有达到我想要的效果..但是,我发现了一个黑客..虽然不是一个合适的解决方案..它是使用 Caption 属性写出我想要的内容。例如。 gv.Caption = ''.
猜你喜欢
  • 2011-07-19
  • 2011-02-21
  • 2010-09-23
  • 1970-01-01
  • 2021-12-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多