Dot-Net
Databound後如何更改Gridview的標題文本?
我有一個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事件來做到這一點GridViewprotected 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 中執行此操作,只需在綁定數據之後。