How to have Excel like comments in a GridDataBoundGrid?
The GridDataBoundGrid just displays the values from the DataSource. It doesn't store any cell style properties apart from the cell text. You have to provide such properties on demand through Model.QueryCellInfo. To have Excel comment tips for the cells, you can have a hashtable to maintain the comments for each cell. You can provide the comments in Model.QueryCellInfo and if edited by users, you can store this in Model.SaveCellInfo.
C#
ArrayList comments;
private void GridQueryCellInfo(object sender, GridQueryCellInfoEventArgs e)
{
if(e.RowIndex > 0 && e.ColIndex == 2)
{
ExcelTip.GridExcelTipStyleProperties style = new ExcelTip.GridExcelTipStyleProperties(e.Style);
style.ExcelTipText = (string)this.comments[e.RowIndex - 1];
e.Handled = true;
}
}
private void GridSaveCellInfo(object sender, GridSaveCellInfoEventArgs e)
{
if(e.RowIndex > 0 && e.ColIndex == 2)
{
ExcelTip.GridExcelTipStyleProperties style = new ExcelTip.GridExcelTipStyleProperties(e.Style);
this.comments[e.RowIndex - 1] = style.ExcelTipText;
e.Handled = true;
}
}
VB
Private comments As ArrayList
Private Sub GridQueryCellInfo(ByVal sender As Object, ByVal e As GridQueryCellInfoEventArgs)
If e.RowIndex > 0 AndAlso e.ColIndex = 2 Then
Dim style As ExcelTip.GridExcelTipStyleProperties = New ExcelTip.GridExcelTipStyleProperties(e.Style)
style.ExcelTipText = CStr(Me.comments(e.RowIndex - 1))
e.Handled = True
End If
End Sub
Private Sub GridSaveCellInfo(ByVal sender As Object, ByVal e As GridSaveCellInfoEventArgs)
If e.RowIndex > 0 AndAlso e.ColIndex = 2 Then
Dim style As ExcelTip.GridExcelTipStyleProperties = New ExcelTip.GridExcelTipStyleProperties(e.Style)
Me.comments(e.RowIndex - 1) = style.ExcelTipText
e.Handled = True
End If
End Sub
Sample:
http://websamples.syncfusion.com/samples/kb/grid.windows/GDBGComments/main.htm