2012-04-10 17 views
4

GridViewには3つのバインドされた列があります:太字のに3列のうち最も高い値を表示します。比較を行い、フォントを太字(好ましくはaspxファイル)に設定するにはどうすればよいですか?ありがとう。GridViewセルを動的にスタイルする方法は?

<Columns>     
<asp:BoundField DataField="A" HeaderText="A" SortExpression="A" />     
<asp:BoundField DataField="B" HeaderText="B" SortExpression="B" /> 
<asp:BoundField DataField="C" HeaderText="C" SortExpression="C" /> 
</Columns> 

明らかにすると、列A、B、Cの数値は行によって最大値になる可能性があります。これは太字にしたい値です。

例:

3 **4** 1 
**6** 2 0 
**9** 1 2 
+1

"最高"の値は何ですか?これらの数値フィールドはありますか?あなたのデータソースは何ですか? –

答えて

6

大胆あなたはこの種のもののために分離コードを必要とするには、この行を書くことができます条件を追加し、条件に大胆 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx にその列の対応するフォントスタイルを設定することができます。この目的にはRowDataBoundを使用してください:

protected void Grid_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     int number; 
     var highestCells = e.Row.Cells.Cast<TableCell>() 
      .Where(tc => int.TryParse(tc.Text, out number)) 
      .OrderByDescending(c => int.Parse(c.Text)); 
     foreach(var cell in highestCells) 
      cell.Font.Bold = true; 
    } 
} 
9

は、この方法を試してみてください:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     for (int j = 0; j < e.Row.Cells.Count; j++) 
     { 
      e.Row.Cells[j].Style.Add("BORDER-BOTTOM", "#aaccee 1px solid"); 
      e.Row.Cells[j].Style.Add("BORDER-RIGHT", "#aaccee 1px solid"); 
      e.Row.Cells[j].Style.Add("padding-left", "5px"); 
     } 
    } 
4

あなたはGridViewののrowdatabound方法でそれを行うことができます。 理想的なやり方は、DB自体から3 coloumnsの最大値を取得し、rawdataboundの値をチェックすることです。 このURLは、小さな紹介を提供するのに役立ちます。これと同様に、あなたは e.Row.Cells[2].Font.Bold = true;

関連する問題