Dot-Net

Databound後如何更改Gridview的標題文本?

  • August 25, 2020

我有一個gridview 我用那個Gridview 綁定了一個DataTable 它是動態的,所以在設計中沒有硬編碼文本。

我試圖在 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("_", "");
   }
}

可以通過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("_", " ");
       }
    }
}

它工作正常。

您可以更改單元格的文本,而不是 HeaderText 屬性:

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

您不需要在 PreRender 中執行此操作,只需在綁定數據之後。

引用自:https://stackoverflow.com/questions/3757946