如何在数据绑定后更改Gridview的标题文本?

Azh*_*har 8 .net asp.net gridview asp.net-3.5

我有一个gridview我绑定了一个DataTable与Gridview它的动态所以没有硬编码文本在desin.

我尝试在Databound和GridView的PreRender之后更改它但没有成功.

实际上文本中有下划线('_'),我想用空格替换它.

下面是代码

<asp:GridView ID="grdSearchResult" runat="server" AutoGenerateColumns="True" Width="99%" OnPreRender="grdSearchResult_PreRender"
            OnRowCreated="grdSearchResult_OnRowCreated" OnPageIndexChanging="grdSearchResult_PageIndexChanging">
            <HeaderStyle ForeColor="White" BackColor="#215B8D" />
            <AlternatingRowStyle BackColor="#F7F7F7" />
            <RowStyle CssClass="gridtext" HorizontalAlign="Center" />
        </asp:GridView>



protected void grdSearchResult_PreRender(object sender, EventArgs e)
{
    for (int i = 0; i < grdSearchResult.Columns.Count; i++)
    {
        grdSearchResult.Columns[i].HeaderText = grdSearchResult.Columns[i].HeaderText.Replace("_", "");
    }
}
Run Code Online (Sandbox Code Playgroud)

Azh*_*har 13

可以用RowDataBound事件做到这一点GridView

protected void grdSearchResult_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.Header)
     {
        for (int i = 0; i < e.Row.Cells.Count; i++)
        {
            e.Row.Cells[i].Text = e.Row.Cells[i].Text.Replace("_", " ");
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常.

  • 这将起作用,只要每次绑定一行就会完成. (3认同)

Bri*_*les 9

您可以更改单元格的文本而不是HeaderText属性:

        for (int i = 0; i < grdSearchResult.Columns.Count; i++)
        {
            grdSearchResult.HeaderRow.Cells[i].Text = grdSearchResult.HeaderRow.Cells[i].Text.Replace("_", "");
        }
Run Code Online (Sandbox Code Playgroud)

在绑定数据之后,您不需要在PreRender中执行此操作.