2013-03-18 94 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侧减少加载后的代码。

相关问题