I just rewrote the VitrualMergeCell sample to fit my needs, but I have one problem : works great for any cell except for the row header column. If I put duplicates consecutive rows anywhere but the first column, merge great, but if it''s in the first, it repeats without merging. Whats wrong?
MC
Martin Cyr
July 4, 2005 08:47 PM UTC
I found something strange : when I set only
Cols.HeaderCount = 0
the first columns won''t merge but if I add
Cols.FrozenCount = 1
then it does merge, but I get a blue dotted line after the next column...
AD
Administrator
Syncfusion Team
July 4, 2005 08:47 PM UTC
The sample seems to work ok for row headers.
What did you change? Did you change this code?
GridStyleInfo rowHeaderStyle = BaseStylesMap["Row Header"].StyleInfo;
//rowHeaderStyle.CellType = "Static";
rowHeaderStyle.MergeCell = GridMergeCellDirection.RowsInColumn;
which is where the merge is enabled on the row headers. Does this code get hit in your sample?
MC
Martin Cyr
July 4, 2005 09:06 PM UTC
Yes, I have this code and it gets hit. The problem is that I do NOT want 3 frozen and 2 headers cols. Try it in your sample. Just change
Cols.HeaderCount = 1
Cols.FrozenCount = 2
to
Cols.HeaderCount = 0
Cols.FrozenCount = 0
Since the default header is still there and is frozen, it''s all that I need (esthetically I mean), but with this code, the first column doesn''t get merged.
MC
Martin Cyr
July 5, 2005 12:47 PM UTC
Until I get an answer, I did this to fix the problem, but it is only a workaround (I still need an answer ;). Sadly this messes all my arithmetics and logics.
Cols.HeaderCount = 1
Cols.FrozenCount = 1
ColHiddenEntries.Add(New GridColHidden(0))
MC
Martin Cyr
July 5, 2005 01:17 PM UTC
After further investigation, I can see that OnQueryCellModel never gets called for col 0 (but it gets called for row 0). Any hints on why that is?
AD
Administrator
Syncfusion Team
July 5, 2005 04:19 PM UTC
This is being looked into. It is not clear yet whether there was a necessary reason for not allowing this to work for the row header column though it is strange that setting FrozenCount = 1 does allow it to work.
You can work around this issue using covered cells by adding an OnQueryCoveredRange override to CustonGridModel.
Protected Overrides Sub OnQueryCoveredRange(ByVal e As Syncfusion.Windows.Forms.Grid.GridQueryCoveredRangeEventArgs)
If e.ColIndex = 0 AndAlso e.RowIndex > Me.Rows.HeaderCount Then
Dim top As Integer = e.RowIndex
Dim val As Object = Me(e.RowIndex, e.ColIndex).CellValue
While top > Me.Rows.HeaderCount AndAlso val.Equals(Me(top - 1, e.ColIndex).CellValue)
top -= 1
End While
Dim bot As Integer = e.RowIndex
While bot < Me.RowCount AndAlso val.Equals(Me(bot + 1, e.ColIndex).CellValue)
bot += 1
End While
If bot <> top Then
e.Range = GridRangeInfo.Cells(top, 0, bot, 0)
e.Handled = True
End If
End If
End Sub
AD
Administrator
Syncfusion Team
July 5, 2005 05:11 PM UTC
This is a defect that has been corrected here in our code base.