Occurs after a DataRow has been changed successfully.
[Visual Basic]
Public Event RowChanged As DataRowChangeEventHandler
[C#]
public event DataRowChangeEventHandler RowChanged;
[C++]
public: __event DataRowChangeEventHandler* RowChanged;
[JScript] In JScript, you can handle the events defined by a class, but you
cannot define your own.
Event Data
The event handler receives an argument of type DataRowChangeEventArgs
containing data related to this event. The following DataRowChangeEventArgs
properties provide information specific to this event.
Property Description
Action Gets the action that has occurred on a DataRow.
Row Gets the row upon which an action has occurred.
Remarks
For more information see Working with DataTable Events.
Example
[Visual Basic]
Private Shared Sub DataTableRowChanged()
Dim custTable As DataTable = New DataTable("Customers")
' add columns
custTable.Columns.Add( "id", Type.GetType("System.Int32") )
custTable.Columns.Add( "name", Type.GetType("System.String") )
custTable.Columns.Add( "address", Type.GetType("System.String") )
' set PrimaryKey
custTable.Columns( "id" ).Unique = true
custTable.PrimaryKey = New DataColumn() { custTable.Columns("id") }
' add a RowChanged event handler for the table.
AddHandler custTable.RowChanged, New DataRowChangeEventHandler(
AddressOf Row_Changed )
' add ten rows
Dim id As Integer
For id = 1 To 10
custTable.Rows.Add( _
New Object() { id, string.Format("customer{0}", id),
string.Format("address{0}", id) } )
Next
custTable.AcceptChanges()
' change the name column in all the rows
Dim row As DataRow
For Each row In custTable.Rows
row("name") = string.Format( "vip{0}", row("id") )
Next
End Sub
Private Shared Sub Row_Changed(sender As Object, e As
DataRowChangeEventArgs)
Console.WriteLine( "Row_Changed Event: name={0}; action={1}", _
e.Row("name"), e.Action)
End Sub
[C#]
private static void DataTableRowChanged()
{
DataTable custTable = new DataTable("Customers");
// add columns
custTable.Columns.Add( "id", typeof(int) );
custTable.Columns.Add( "name", typeof(string) );
custTable.Columns.Add( "address", typeof(string) );
// set PrimaryKey
custTable.Columns[ "id" ].Unique = true;
custTable.PrimaryKey = new DataColumn[] { custTable.Columns["id"] };
// add a RowChanged event handler for the table.
custTable.RowChanged += new DataRowChangeEventHandler( Row_Changed );
// add ten rows
for( int id=1; id<=10; id++ )
{
custTable.Rows.Add(
new object[] { id, string.Format("customer{0}", id),
string.Format("address{0}", id) } );
}
custTable.AcceptChanges();
// change the name column in all the rows
foreach( DataRow row in custTable.Rows )
{
row["name"] = string.Format( "vip{0}", row["id"] );
}
}
private static void Row_Changed( object sender, DataRowChangeEventArgs e )
{
Console.WriteLine( "Row_Changed Event: name={0}; action={1}",
e.Row["name"], e.Action );
}
[C++]
public:
static void DataTableRowChanged() {
DataTable* custTable = new DataTable(S"Customers");
// add columns
custTable->Columns->Add(S"id", __typeof(int));
custTable->Columns->Add(S"name", __typeof(String));
custTable->Columns->Add(S"address", __typeof(String));
// set PrimaryKey
custTable->Columns->Item[ S"id" ]->Unique = true;
DataColumn* ColumnArray[] = { custTable->Columns->Item[S"id"] };
custTable->PrimaryKey = ColumnArray;
// add a RowChanged event handler for the table.
custTable->RowChanged += new DataRowChangeEventHandler(0, Row_Changed);
// add ten rows
for (int id=1; id<=10; id++) {
Object* temp0 [] = {__box(id), String::Format(S"customer {0}",
__box(id)), String::Format(S"address {0}", __box(id)) };
custTable->Rows->Add(temp0);
}
custTable->AcceptChanges();
// change the name column in all the rows
System::Collections::IEnumerator* myEnum =
custTable->Rows->GetEnumerator();
while (myEnum->MoveNext()) {
DataRow* row = __try_cast<DataRow*>(myEnum->Current);
row->Item[S"name"] = String::Format(S"vip {0}", row->Item[S"id"]);
}
}
public:
static void Row_Changed(Object* sender,
System:

ata:

ataRowChangeEventArgs* e) {
Console::WriteLine(S"Row_Changed Event: name= {0}; action= {1}",
e->Row->Item[S"name"],__box( e->Action));
}
[JScript] No example is available for JScript. To view a Visual Basic, C#,
or C++ example, click the Language Filter button in the upper-left corner
of the page.
Requirements
--
Regards - One Handed Man
Author : Fish .NET & Keep .NET
==============================
"Robert Batt" <(E-Mail Removed)> wrote in message
news:096401c36c7f$126b3c90$(E-Mail Removed)...
> Hi,
> thanx for the help I'm still not sure,
>
> I have the following code that binds the dataset dsjobs to
> the datagrid dgjobs.
> dv is a dataview and cm is a currency manager
>
> dgJobs.DataSource = dsJobs.Tables!Jobs
> cm = CType(Me.BindingContext(dsJobs.Tables!jobs),
> CurrencyManager)
> dv = (CType(cm.List, DataView))
>
>
> What event of dv determines if it has been changed.
> since the dv is created programmatically at runtime I
> don't get anything in the dropdown list.
>
> Regards
> Robert
>
>
>
> >-----Original Message-----
> >Hi,
> >You can follow the events of a DataView whick is binded
> to your DataGrid.
> >DataGrid can't understand if a row is updated or added.
> However DataView has
> >events called when a row is changed.
> >
> >Hope this help.
> >
> >"Robert Batt" <(E-Mail Removed)> wrote in message
> >news:08cc01c36c75$6a157370$(E-Mail Removed)...
> >> Hello,
> >> How do you detect when a value has been changed a
> >> datagrid. I need to know this so that I know when to
> >> update the back-end database with the bound datagrid
> data.
> >> What event triggers the change.
> >>
> >> Regards
> >>
> >> Robert
> >>
> >> ps I originally put this post in the dotnet.languages.vb
> >> area, but was told to move it
> >
> >
> >.
> >