2013-03-18 162 views
2

我試圖設計我的GridView對象,但我似乎無法讓它使用CSS類。我正在動態創建GridView,因此它們都是在代碼隱藏中創建的。我嘗試了以下,似乎沒有任何工作。在代碼中添加CSS到GridView後面的代碼

for (...) 
{ 
GridView gv = new GridView(); 
gv.CssClass = "aclass"; 
gv.Attributes.Add("class", "aclass"); 
} 

,並在RowDataBound事件:

foreach (row in gv) 
e.Row.Cells[i].CssClass = "aClass"; 

,但我仍然不能樣式我的數據。任何意見是極大的讚賞

+0

頁面生命週期的哪個階段是你創建gridview的? '頁面加載','初始'? – 2013-03-18 18:00:37

+0

我正在做PageLoad – Jenny54321 2013-03-18 18:23:07

+0

嘗試將該代碼移動到'Page_Init'方法。由於頁面的生命週期,不應該在頁面加載時創建動態控件。 – 2013-03-18 23:34:26

回答

0
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      e.Row.Cells[1].CssClass = "controlbackcolor"; 
      e.Row.Cells[3].CssClass = "controlbackcolor"; 
     } 
    } 

這應該工作,但你需要確保該CSS類被放在正確的地方或鏈接..否則,你不會得到樣式應用

你的CSS類的聲明看起來應該像頭標記或鏈接如下:

.controlbackcolor { 背景:綠色; font-weight:bold; 顏色:白色; }

+0

你能詳細說明它需要的地方嗎?我有一個Site.Css頁面,我可以把它放在那裏的任何地方。謝謝 – Jenny54321 2013-03-18 20:02:08

+0

如果您從新建網站模板開始並使用站點母版頁,那麼您放入site.css中的CSS類應該可用於任何頁面。 – 2013-03-18 20:38:12

1

最好的方法是像你這樣分配CssClass。然後使用選擇這樣的控制方式:

Codehind

MyGridView.CssClass = "aclass"; 

CSS

.aclass{Border: 1px solid lighgray;} 
.aclass tr td {background:green; font-weight:bold; color: white} 

GridView控件呈現爲普通表在HTML中,這樣你就可以做到這一點在CSS側減少加載後的代碼。

相關問題