Search code examples
.netasp.netgridviewasp.net-3.5

How to change the Header Text of Gridview after Databound?


I have a gridview I bound a DataTable with that Gridview Its dynamic so no hardcode Text in desin.

I tried to change it after Databound and in PreRender of gridview but no Success.

Actually there are Underscores('_') in text and I want to Replace it with space.

Below is code

<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("_", "");
    }
}

Solution

  • Can do this with RowDataBound event of 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("_", " ");
            }
         }
    }
    

    and it works fine.