作成日: 2015/07/07 最終更新日: 2015/07/07
文書種別
使用方法
詳細
セルに設定された値によってセルのスタイルを変更するには、RowDataBoundイベントを使用する方法があります。
RowDataBoundは行とデータが連結した際に発生するイベントです。
このイベントではデータを検査し、特定の条件に基づいてグリッドの外観を変更(背景色やフォントなど)でき、条件付き書式を設定することができます。
例えば下記のような動作を実現できます。
1.数値項目でデータがマイナス値の場合に赤文字で表示する。
2.日付項目でデータの曜日によってセルの背景色を設定する。
◎サンプルコード(aspx)
上記のようなグリッドにて数値項目がNumber列に、日付項目がDateTime列に設定されていた場合、先の例の動作を実現するコードは下記のようになります。
◎サンプルコード(VB)
◎サンプルコード(C#)
RowDataBoundは行とデータが連結した際に発生するイベントです。
このイベントではデータを検査し、特定の条件に基づいてグリッドの外観を変更(背景色やフォントなど)でき、条件付き書式を設定することができます。
例えば下記のような動作を実現できます。
1.数値項目でデータがマイナス値の場合に赤文字で表示する。
2.日付項目でデータの曜日によってセルの背景色を設定する。
◎サンプルコード(aspx)
<wijmo:C1GridView ID="C1GridView1" runat="server" AutogenerateColumns="False" DataKeyNames="ID" DataSourceID="AccessDataSource1" OnRowDataBound="C1GridView1_RowDataBound">
<Columns>
<wijmo:C1BoundField DataField="ID" HeaderText="ID">
</wijmo:C1BoundField>
<wijmo:C1BoundField DataField="Number" HeaderText="Number" DataFormatString="n0">
</wijmo:C1BoundField>
<wijmo:C1BoundField DataField="DateTime" HeaderText="DateTime" DataFormatString="yyyy/MM/dd ddd">
</wijmo:C1BoundField>
</Columns>
</wijmo:C1GridView>
<Columns>
<wijmo:C1BoundField DataField="ID" HeaderText="ID">
</wijmo:C1BoundField>
<wijmo:C1BoundField DataField="Number" HeaderText="Number" DataFormatString="n0">
</wijmo:C1BoundField>
<wijmo:C1BoundField DataField="DateTime" HeaderText="DateTime" DataFormatString="yyyy/MM/dd ddd">
</wijmo:C1BoundField>
</Columns>
</wijmo:C1GridView>
上記のようなグリッドにて数値項目がNumber列に、日付項目がDateTime列に設定されていた場合、先の例の動作を実現するコードは下記のようになります。
◎サンプルコード(VB)
Protected Sub C1GridView1_RowDataBound(sender As Object, e As C1.Web.Wijmo.Controls.C1GridView.C1GridViewRowEventArgs) Handles C1GridView1.RowDataBound
If (e.Row.RowType = C1GridViewRowType.DataRow) Then
' 数値項目でデータがマイナス値の場合に赤文字で表示する
Dim num As Long = Long.Parse(e.Row.Cells(1).Text)
If num < 0 Then
e.Row.Cells(1).ForeColor = Color.Red
End If
' 日付項目でデータの曜日によってセルの背景色を設定する
Dim dt As DateTime = New DateTime(Long.Parse(e.Row.Cells(2).Text) * 10000).AddYears(1969)
If dt.DayOfWeek = DayOfWeek.Saturday Then
' 土曜日
e.Row.Cells(2).BackColor = System.Drawing.Color.LightBlue
ElseIf dt.DayOfWeek = DayOfWeek.Sunday Then
' 日曜日
e.Row.Cells(2).BackColor = System.Drawing.Color.LightPink
End If
End If
End Sub
If (e.Row.RowType = C1GridViewRowType.DataRow) Then
' 数値項目でデータがマイナス値の場合に赤文字で表示する
Dim num As Long = Long.Parse(e.Row.Cells(1).Text)
If num < 0 Then
e.Row.Cells(1).ForeColor = Color.Red
End If
' 日付項目でデータの曜日によってセルの背景色を設定する
Dim dt As DateTime = New DateTime(Long.Parse(e.Row.Cells(2).Text) * 10000).AddYears(1969)
If dt.DayOfWeek = DayOfWeek.Saturday Then
' 土曜日
e.Row.Cells(2).BackColor = System.Drawing.Color.LightBlue
ElseIf dt.DayOfWeek = DayOfWeek.Sunday Then
' 日曜日
e.Row.Cells(2).BackColor = System.Drawing.Color.LightPink
End If
End If
End Sub
◎サンプルコード(C#)
protected void C1GridView1_RowDataBound(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewRowEventArgs e)
{
if ((e.Row.RowType == C1GridViewRowType.DataRow))
{
// 数値項目でデータがマイナス値の場合に赤文字で表示する
long num = long.Parse(e.Row.Cells[1].Text);
if (num < 0)
{
e.Row.Cells[1].ForeColor = Color.Red;
}
// 日付項目でデータの曜日によってセルの背景色を設定する
DateTime dt = new DateTime(long.Parse(e.Row.Cells[2].Text) * 10000).AddYears(1969);
if (dt.DayOfWeek == DayOfWeek.Saturday) // 土曜日
{
e.Row.Cells[2].BackColor = System.Drawing.Color.LightBlue;
}
else if (dt.DayOfWeek == DayOfWeek.Sunday) // 日曜日
{
e.Row.Cells[2].BackColor = System.Drawing.Color.LightPink;
}
}
}
{
if ((e.Row.RowType == C1GridViewRowType.DataRow))
{
// 数値項目でデータがマイナス値の場合に赤文字で表示する
long num = long.Parse(e.Row.Cells[1].Text);
if (num < 0)
{
e.Row.Cells[1].ForeColor = Color.Red;
}
// 日付項目でデータの曜日によってセルの背景色を設定する
DateTime dt = new DateTime(long.Parse(e.Row.Cells[2].Text) * 10000).AddYears(1969);
if (dt.DayOfWeek == DayOfWeek.Saturday) // 土曜日
{
e.Row.Cells[2].BackColor = System.Drawing.Color.LightBlue;
}
else if (dt.DayOfWeek == DayOfWeek.Sunday) // 日曜日
{
e.Row.Cells[2].BackColor = System.Drawing.Color.LightPink;
}
}
}
旧文書番号
81396