2011-09-01 51 views
1

我有一個GridView的,我需要能夠設置樣式爲自動生成列,特別是我需要設置每列的寬度。我怎樣才能做到這一點?如何定製GridView的自動生成列的樣式?

感謝您的回覆!

SOLUTION UPDATE:

(感謝斯蒂芬·鮑爾)

上的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

不能使用GridView的Columns財產DataBound事件,因爲如果GridView的AutoGenerateColumns屬性設置爲true生成的列不會添加到GridView的Columns集合。

但你可以嘗試操縱的myGrid.Row[x].Cells[y]屬性(記住要檢查,如果指定行和單元的存在):

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

你能舉個例子嗎?如何訪問該事件中的列? –

+0

使用(發件人爲System.Web.UI.WebControls.GridView).Columns.Count返回的計數爲0.任何想法它是如何工作的? –

+0

查看我的更新回答 –

0

可以使用例如各種風格屬性

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

這工作列是自動生成的與否。

+0

是的,但我需要分別定製每個列。例如,您需要具有80像素的寬度,另一個必須具有150像素等。 –

+0

如果您有特定大小的特定列,那麼爲什麼使用自動生成的列? –

+0

你有一個非常好的觀點:)我正在研究如何做分頁和排序,我很好奇,如果設置自動生成列的寬度是可能的。 –

-1

It Works ..thanks 我需要在自動化列上應用標題樣式。下面是用於在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);

相關問題