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)
它工作正常.
您可以更改单元格的文本而不是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中执行此操作.