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

时间:2011-09-01 11:41:50

标签: c# asp.net gridview

我有一个 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");

设置任何其他css属性。

3 个答案:

答案 0 :(得分:3)

您无法在DataBound事件中使用GridView的Columns属性,因为如果GridView的Columns属性设置为{{1},则生成的列不会添加到GridView的AutoGenerateColumns集合中}。

但您可以尝试操作true的属性(请记住检查指定的行和单元格是否存在):

myGrid.Row[x].Cells[y]

答案 1 :(得分:0)

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

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

无论列是否自动生成,都可以使用。

答案 2 :(得分:-1)

它有效..谢谢 我需要在自动生成的列上应用标题样式。以下是在Autogenrated列上应用标题css的代码

protected void grvRequirement_DataBound(object sender, EventArgs e)
{
    this.grv_RequirementList.HeaderRow.CssClass = "grid_sub_heading";
}

斯蒂芬有一个错误,应该是这样的

this.myGrid.Rows [0] .Cells [0] .Width = Unit.Pixel(500);