Hello,
I have upgraded Telerik for Winforms to version Q3 2010 (version 2010.3.10.1109) .
In the _CellFormatting-event I add a RadComboBoxElement to a cell.
Since new version the event behaves strange or different.
e.CellElement.RowIndex is always -1 ?
How do I get the RowIndex in the CellFormatting-event ? Or is there a new way to add a RadComboBoxElement to a cell ?
I have upgraded Telerik for Winforms to version Q3 2010 (version 2010.3.10.1109) .
In the _CellFormatting-event I add a RadComboBoxElement to a cell.
Since new version the event behaves strange or different.
e.CellElement.RowIndex is always -1 ?
void gridPositionen_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo is GridViewDataColumn && ((GridViewDataColumn)e.CellElement.ColumnInfo).Name == "Me_Dropdown")
{
if (e.CellElement.Children.Count > 0 || e.CellElement.RowIndex<0)//the comboxbox is already added to cell
return;
//NEVER GETS HERE !!!! e.CellElement.RowIndex is always -1
RadComboBoxElement element = new RadComboBoxElement();
e.CellElement.Children.Add(element);
....
How do I get the RowIndex in the CellFormatting-event ? Or is there a new way to add a RadComboBoxElement to a cell ?
9 Answers, 1 is accepted
0

Richard Slade
Top achievements
Rank 2
answered on 22 Nov 2010, 11:25 AM
Hi,
Yes, you can get the RowIndex
Have a look at Emanuel's answer here which has a combobox column in the code.
Hope that helps but let me know if oyu have further questions
Richard
Yes, you can get the RowIndex
private
void
radGridView1_CellFormatting(
object
sender, CellFormattingEventArgs e)
{
if
(e.CellElement.RowIndex > -1)
{
MessageBox.Show(e.CellElement.RowIndex.ToString());
}
}
Have a look at Emanuel's answer here which has a combobox column in the code.
Hope that helps but let me know if oyu have further questions
Richard
0

Fred
Top achievements
Rank 1
answered on 22 Nov 2010, 11:29 AM
Thx !
0

Richard Slade
Top achievements
Rank 2
answered on 22 Nov 2010, 11:35 AM
No problem. Please remember to mark as answer if this has helped.
Thanks
Richard
Thanks
Richard
0

Fred
Top achievements
Rank 1
answered on 22 Nov 2010, 12:10 PM
Ok I will Richard, but I have found the problem or bug. See following exemple :
in this exemple
if I remove
A bug ?
public
testform()
{
InitializeComponent();
radGridView1.CellFormatting +=
new
Telerik.WinControls.UI.CellFormattingEventHandler(radGridView1_CellFormatting);
radGridView1.BeginUpdate();
radGridView1.Columns.Add(
"ID"
,
"ID"
);
radGridView1.Columns.Add(
"NAME"
,
"NAME"
);
radGridView1.Rows.Add(1,
"John"
);
radGridView1.Rows.Add(2,
"Bill"
);
radGridView1.Rows.Add(3,
"Ronald"
);
radGridView1.EndUpdate();
}
void
radGridView1_CellFormatting(
object
sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
int
i = e.CellElement.RowIndex;
}
e.CellElement.RowIndex
is always -1 if I remove
radGridView1.BeginUpdate();
and
radGridView1.EndUpdate();
from the code thene.CellElement.RowIndex
is not always -1.A bug ?
0

Richard Slade
Top achievements
Rank 2
answered on 22 Nov 2010, 01:03 PM
Hello,
Another way to get the RowIndex as it appears that it is always -1 when you wrap with BeginUpdate / EndUpdate is in the following way (inside CellFormatting event)
hope this helps
Richard
Another way to get the RowIndex as it appears that it is always -1 when you wrap with BeginUpdate / EndUpdate is in the following way (inside CellFormatting event)
Dim
index
As
Integer
=
Me
.RadGridView1.Rows.IndexOf(e.CellElement.RowInfo)
MessageBox.Show(index.ToString())
hope this helps
Richard
0

Fred
Top achievements
Rank 1
answered on 23 Nov 2010, 09:12 AM
RowInfo is also empty . Your function also returns -1.
0
Accepted

Richard Slade
Top achievements
Rank 2
answered on 23 Nov 2010, 10:11 AM
Hello Fred,
Whilst e.CellElement.RowIndex is always -1 when wrapped in a BeginUpdate / EndUpdate, the above code always returns the correct index for me. (-1 will be returned for header rows)
Please can you try this sampple in a new project. It's just a RadGridView on a form.
Thanks
Richard
Whilst e.CellElement.RowIndex is always -1 when wrapped in a BeginUpdate / EndUpdate, the above code always returns the correct index for me. (-1 will be returned for header rows)
Please can you try this sampple in a new project. It's just a RadGridView on a form.
Thanks
Public
Class
Form1
Public
Sub
New
()
InitializeComponent()
End
Sub
Private
Sub
Form1_Load(
ByVal
sender
As
System.
Object
, _
ByVal
e
As
System.EventArgs)
Handles
MyBase
.Load
RadGridView1.BeginUpdate()
RadGridView1.Columns.Add(
"ID"
,
"ID"
)
RadGridView1.Columns.Add(
"NAME"
,
"NAME"
)
RadGridView1.Rows.Add(1,
"John"
)
RadGridView1.Rows.Add(2,
"Bill"
)
RadGridView1.Rows.Add(3,
"Ronald"
)
RadGridView1.EndUpdate(
True
)
End
Sub
Private
Sub
RadGridView1_CellFormatting(
ByVal
sender
As
System.
Object
, _
ByVal
e
As
Telerik.WinControls.UI.CellFormattingEventArgs)
Handles
RadGridView1.CellFormatting
Dim
index
As
Integer
=
Me
.RadGridView1.Rows.IndexOf(e.CellElement.RowInfo)
If
index > -1
Then
MessageBox.Show(index.ToString())
End
If
End
Sub
End
Class
0

Fred
Top achievements
Rank 1
answered on 23 Nov 2010, 10:20 AM
Ok, this works, thanks for your time !
0
Accepted

Richard Slade
Top achievements
Rank 2
answered on 23 Nov 2010, 10:21 AM
You're welcome Fred. Glad that worked for you.
Richard
Richard