Hi,
I have a problem using datatable.getChanges method with a radGridView binded on a datatable, changing values programmaticaly:
The first changed value is not in the datatable.getChanges results.
Here is a simple example :
Designer.vb
Form.vb
I expect 2 changes whereas i have only 1..
Is this a bug ?
Is there a workaround?
Thanks,
Gerald
I have a problem using datatable.getChanges method with a radGridView binded on a datatable, changing values programmaticaly:
The first changed value is not in the datatable.getChanges results.
Here is a simple example :
Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial
Class
testTelerik
Inherits
System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected
Overrides
Sub
Dispose(
ByVal
disposing
As
Boolean
)
Try
If
disposing
AndAlso
components IsNot
Nothing
Then
components.Dispose()
End
If
Finally
MyBase
.Dispose(disposing)
End
Try
End
Sub
'Requise par le Concepteur Windows Form
Private
components
As
System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private
Sub
InitializeComponent()
Dim
GridViewTextBoxColumn1
As
Telerik.WinControls.UI.GridViewTextBoxColumn =
New
Telerik.WinControls.UI.GridViewTextBoxColumn()
Me
.RadGridView1 =
New
Telerik.WinControls.UI.RadGridView()
Me
.RadButton1 =
New
Telerik.WinControls.UI.RadButton()
CType
(
Me
.RadGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType
(
Me
.RadButton1, System.ComponentModel.ISupportInitialize).BeginInit()
Me
.SuspendLayout()
'
'RadGridView1
'
Me
.RadGridView1.Location =
New
System.Drawing.Point(27, 34)
'
'RadGridView1
'
Me
.RadGridView1.MasterTemplate.AllowAddNewRow =
False
Me
.RadGridView1.MasterTemplate.AllowDeleteRow =
False
Me
.RadGridView1.MasterTemplate.AllowEditRow =
False
Me
.RadGridView1.MasterTemplate.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill
GridViewTextBoxColumn1.FieldName =
"Name"
GridViewTextBoxColumn1.FormatString =
""
GridViewTextBoxColumn1.HeaderText =
"Name"
GridViewTextBoxColumn1.Name =
"column1"
GridViewTextBoxColumn1.Width = 219
Me
.RadGridView1.MasterTemplate.Columns.AddRange(
New
Telerik.WinControls.UI.GridViewDataColumn() {GridViewTextBoxColumn1})
Me
.RadGridView1.Name =
"RadGridView1"
Me
.RadGridView1.Size =
New
System.Drawing.Size(240, 150)
Me
.RadGridView1.TabIndex = 0
Me
.RadGridView1.Text =
"RadGridView1"
'
'RadButton1
'
Me
.RadButton1.Location =
New
System.Drawing.Point(137, 212)
Me
.RadButton1.Name =
"RadButton1"
Me
.RadButton1.Size =
New
System.Drawing.Size(130, 24)
Me
.RadButton1.TabIndex = 1
Me
.RadButton1.Text =
"RadButton1"
'
'testTelerik
'
Me
.AutoScaleDimensions =
New
System.Drawing.SizeF(6.0!, 13.0!)
Me
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me
.ClientSize =
New
System.Drawing.Size(292, 266)
Me
.Controls.Add(
Me
.RadButton1)
Me
.Controls.Add(
Me
.RadGridView1)
Me
.Name =
"testTelerik"
Me
.Text =
"testTelerik"
CType
(
Me
.RadGridView1, System.ComponentModel.ISupportInitialize).EndInit()
CType
(
Me
.RadButton1, System.ComponentModel.ISupportInitialize).EndInit()
Me
.ResumeLayout(
False
)
End
Sub
Friend
WithEvents
RadGridView1
As
Telerik.WinControls.UI.RadGridView
Friend
WithEvents
RadButton1
As
Telerik.WinControls.UI.RadButton
End
Class
Form.vb
Public
Class
testTelerik
Public
Sub
New
()
' Cet appel est requis par le concepteur.
InitializeComponent()
Dim
dt
As
New
DataTable
dt.Columns.Add(
"Name"
,
GetType
(
String
))
Dim
dr
As
DataRow = dt.NewRow
dr(
"Name"
) =
"Johnson"
dt.Rows.Add(dr)
dr = dt.NewRow
dr(
"Name"
) =
"Peter"
dt.Rows.Add(dr)
dt.AcceptChanges()
RadGridView1.DataSource = dt
End
Sub
Private
Sub
RadButton1_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
RadButton1.Click
Dim
dt
As
DataTable =
DirectCast
(RadGridView1.DataSource, DataTable)
RadGridView1.Rows(0).Cells(0).Value =
"NewOne"
RadGridView1.Rows(1).Cells(0).Value =
"NewOne2"
Dim
changes
As
DataTable = dt.GetChanges
MessageBox.Show(changes.Rows.Count.ToString +
" change(s)"
)
End
Sub
End
Class
I expect 2 changes whereas i have only 1..
Is this a bug ?
Is there a workaround?
Thanks,
Gerald