C# 正在尝试在此gridview中为headertext加下划线

C# 正在尝试在此gridview中为headertext加下划线,c#,css,asp.net,gridview,C#,Css,Asp.net,Gridview,我试图在整个标题文本下面加下划线,使其看起来像下面的图片(标记为“试图使其看起来像”)。但它不会在整个标题文本中带有一致的下划线。谢谢你的帮助 图片中的“试图让它看起来像”部分就是我想要的样子 图片中“看起来像现在”的部分就是它现在的样子 代码附在下面 <asp:GridView runat="server" ID="grdvwDepositTransaction" AutoGenerateColumns="false" DataKeyNames="St

我试图在整个标题文本下面加下划线,使其看起来像下面的图片(标记为“试图使其看起来像”)。但它不会在整个标题文本中带有一致的下划线。谢谢你的帮助

图片中的“试图让它看起来像”部分就是我想要的样子 图片中“看起来像现在”的部分就是它现在的样子

代码附在下面

  <asp:GridView runat="server" ID="grdvwDepositTransaction"
                AutoGenerateColumns="false" DataKeyNames="Status"
                OnRowCommand="grdvwDepositTransaction_RowCommand" ShowHeaderWhenEmpty="true" OnRowDataBound="grd_RowDataBound"
                CssClass="grid">

               <Columns>
                  <asp:TemplateField>
              <ItemTemplate>

              </ItemTemplate>
               </asp:TemplateField>

                  <asp:BoundField DataField="DepositEntry.cardNumber" HeaderText="Card Number" ItemStyle-CssClass="mediumColumn columnCenter" />
                  <asp:BoundField DataField="DepositEntry.accountNumber" HeaderText="Account Number" ItemStyle-CssClass="mediumColumn columnCenter" />
                  <asp:BoundField DataField="DepositEntry.firstName" HeaderText="Customer Name" ItemStyle-CssClass="mediumColumn columnCenter" />
                  <asp:BoundField DataField="DepositEntry.transactionDateTime" HeaderText="Transaction Date/Time" ItemStyle-CssClass="mediumColumn columnCenter" />
                  <asp:BoundField DataField="DepositEntry.cashAmount" HeaderText="Cash Amount" ItemStyle-CssClass="mediumColumn columnCenter" />
                  <asp:BoundField DataField="DepositEntry.depositAmount" HeaderText="Envelope Deposit Amount" ItemStyle-CssClass="mediumColumn columnCenter" />
               </Columns>
                    <EmptyDataTemplate>
                        <br />
                         <br /><br />
                        <span style="font-weight: bold; text-anchor:middle;">No Transactions have been entered</span>
                            </EmptyDataTemplate>                   
                           </asp:GridView>









  <table class="grid" cellspacing="0" rules="all" border="1"      id="MainContent_grdvwDepositTransaction" style="border-collapse:collapse;">
    <tr style="text-decoration:underline;">
        <th scope="col">&nbsp;</th><th scope="col">Card Number</th><th scope="col">Account Number</th><th scope="col">Customer Name</th><th scope="col">Transaction Date/Time</th><th scope="col">Cash Amount</th><th scope="col">Envelope Deposit Amount</th>
    </tr><tr>
        <td colspan="7">
                        <br />
                         <br />
                        <br />
                        <span style="font-weight: bold; text-anchor:middle;">No Transactions have been entered</span>
                    </td>
    </tr>
</table>


               <br />

                </div>

          </div>





未输入任何交易记录 卡号账号联系人姓名交易日期/时间现金金额分期存款金额


未输入任何交易记录

此CSS将为
表格的第一个
tr
提供一个底部边框,该
表格带有
网格
类:

table.grid tr:first-of-type {
    border-bottom: 5px solid black;
}

在列标记之前添加以下内容:

<HeaderStyle CssClass="HeaderTemplate" />
.HeaderTemplate {
    border-bottom: 2px solid black;
}

我同意,你可以用CSS来做。但是,如果您对从服务器端以编程方式进行操作感兴趣,我可以在这方面为您提供帮助

  • 定义行_数据绑定事件,如下所示。
    OnRowDataBound=“gvw\u RowDataBound”
  • 然后在服务器端,如果找到
    标题行
  • 接下来,请执行以下操作

    • 创建一个额外的行
    • 设置colspan=单元格计数
    • 添加所需的html,在本例中为
    • 然后将额外的行附加到标题行
    完整代码

    protected void gvw_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            GridViewRow extraRow = new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
            TableCell tc = new DataControlFieldCell(((DataControlFieldCell)e.Row.Cells[0]).ContainingField);
            tc.Text = "<hr/>";
            tc.ColumnSpan = e.Row.Cells.Count;
            extraRow.Cells.Add(tc);
            e.Row.Parent.Controls.AddAt(1, extraRow);
        }
    }
    
    受保护的void gvw_RowDataBound(对象发送方,GridViewRowEventArgs e)
    {
    if(e.Row.RowType==DataControlRowType.Header)
    {
    GridViewRow extraRow=新的GridViewRow(-1,-1,DataControlRowType.Header,DataControlRowState.Normal);
    TableCell tc=新的DataControlFieldCell(((DataControlFieldCell)e.Row.Cells[0])。包含字段;
    tc.Text=“
    ”; tc.ColumnSpan=e.Row.Cells.Count; 外部行。单元格。添加(tc); e、 Row.Parent.Controls.AddAt(1,extrow); } }
    来源-


    希望,这将是有益的,在其他方面(以防有人想添加任何自定义html)

    HTML输出是什么样子的?使用CSS应该很容易。这是我的想法!谢谢你看这个。HTML输出应该看起来像“看起来像当前图像”。这没有帮助,我需要查看实际的HTML。@DavidG编辑了问题,以包括HTML呈现see灰色代码块。您可以使用CSS选择器选择表的第一个tr,并使用
    边框底部
    ,这实际上会在标题行下方添加一个连续的行。