我有一个GridView,我使用c#代码以编程方式绑定。 问题是,列直接从数据库获取其标题文本,这在网站上呈现时看起来很奇怪。所以基本上,我想修改列标题文本,但编程方式。 我已经尝试了以下内容,
testGV.Columns[0].HeaderText = "Date";
和
this.testGV.Columns[0].HeaderText = "Date";
似乎没有给我正确的结果。
答案 0 :(得分:47)
你应该在GridView的RowDataBound
事件中执行此操作,该事件是在数据绑定之后为每个GridViewRow
触发的。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "Date";
}
}
或者您可以将AutogenerateColumns
设置为false
并在aspx上以声明方式添加列:
<asp:gridview id="GridView1"
onrowdatabound="GridView1_RowDataBound"
autogeneratecolumns="False"
emptydatatext="No data available."
runat="server">
<Columns>
<asp:BoundField DataField="DateField" HeaderText="Date"
SortExpression="DateField" />
</Columns>
</asp:gridview>
答案 1 :(得分:13)
我觉得这个有用:
testGV.HeaderRow.Cells[0].Text="Date"
答案 2 :(得分:4)
您可以使用gridview的datarow bound事件来完成。尝试下面的代码示例:
protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "TiTle";
}
}
有关行数据绑定事件研究Thsi....
的更多详细信息答案 3 :(得分:1)
在您的asp.net页面上添加gridview
<asp:GridView ID="GridView1" onrowdatabound="GridView1_RowDataBound" >
</asp:GridView>
在c#类中创建一个名为GridView1_RowDataBound
的方法protected void方法作为
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "HeaderText";
}
}
一切都应该正常。
答案 4 :(得分:0)
更好地从gridview中查找单元格,而不是从静态/修复索引中查找,因此,每当您添加/删除gridview上的任何列时,它都不会产生任何问题。
ASPX:
<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" >
<Columns>
<asp:BoundField HeaderText="Date" DataField="CreatedDate" />
</Columns>
</asp:GridView>
CS:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
if (string.Compare(e.Row.Cells[i].Text, "Date", true) == 0)
{
e.Row.Cells[i].Text = "Created Date";
}
}
}
}
答案 5 :(得分:0)
protected void grdDis_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
#region Dynamically Show gridView header From data base
getAllheaderName();/*To get all Allowences master headerName*/
TextBox txt_Days = (TextBox)grdDis.HeaderRow.FindControl("txtDays");
txt_Days.Text = hidMonthsDays.Value;
#endregion
}
}