我有一个 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属性。
答案 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);