如何自定义GridView的自动生成列的样式

本文关键字:自动生成 样式 GridView 自定义 | 更新日期: 2023-09-27 18:07:28

我有一个GridView,我需要能够设置自动生成列的样式,特别是我需要设置宽度每列。我该怎么做呢?

谢谢你的回复!

解决方案更新:

(感谢Stephan Bauer)

在DataGrid上添加事件

OnDataBound="ItemsBound"

在事件中设置宽度:

protected void ItemsBound(object sender, EventArgs e)
{
    (sender as GridView).Rows[0].Cells[0].Width = Unit.Pixel(150);
}

或者你可以这样做:

(sender as GridView).Rows[0].Cells[0].Style.Add("width", "150px");

如何自定义GridView的自动生成列的样式

你不能使用GridView的Columns属性在DataBound事件,因为生成的列不添加到GridView的Columns集合,如果GridView的AutoGenerateColumns属性设置为true

但是您可以尝试操作myGrid.Row[x].Cells[y]的属性(记住检查指定的行和单元格是否存在):

protected void myGrid_DataBound(object sender, EventArgs e) 
{
  this.myGrid.Row[0].Cells[0].Width = Unit.Pixel(500);
}

您可以使用各种样式属性,例如

<asp:GridView runat="server" RowStyle-BackColor="AliceBlue" RowStyle-CssClass="SomeClassThatSetsTheColumnWidth" />

无论列是否自动生成,

It Works .谢谢我需要在自动生成的列上应用标题样式。下面是在自生成列

上应用标题css的代码
protected void grvRequirement_DataBound(object sender, EventArgs e)
{
    this.grv_RequirementList.HeaderRow.CssClass = "grid_sub_heading";
}

Stephen这里有一个错误,应该是这样的

this.myGrid.Rows [0] .Cells[0]。