Hello!

Would anyone kindly teach me how to programmatically post proposed values
for a row in windows form
datagrid?

The reason that I raise this question is -- whenever I call
OdbcDataAdpter.Update() method to apply updates and inserts the user
performed on a
datagrid, I would always lose the modifications on the row that is last
edited. I have to ask my users to manually click another row to post all
proposed values to the dataset.

By the way, this code fails to be effective:

this.BindingContex[mydataset.mytable].EndCurrentEdit(); //this = the
form

(My datagrid is bound to "mydataset.mytable", so I'm NOT using the wrong
CurrencyManager.)


TIA,
XIA Chengbin

Re: How to programmatically post proposed values for a row in windows form datagrid? by Michael

Michael
Tue Jul 29 12:57:05 CDT 2003

I had a similar problem. I added a little extra code than what you have...

===== CODE =======================================================
private void FocusChange()
{
if (grdSplits.DataSource != null)
{
grdSplits.EndEdit(null, grdSplits.CurrentRowIndex, false);
grdSplits.BindingContext[grdSplits.DataSource,
grdSplits.DataMember].EndCurrentEdit();
grdSplits.Invalidate();
grdSplits.Update();
}
}
private void grdSplits_Leave(object sender, System.EventArgs e)
{
FocusChange();
}
private void grdSplits_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
FocusChange();
}
===== End CODE ====================================================

I think the Invalidate and Update helps. Also make sure you call it on the
grid focus related events as shown.

You can get all of the DataTable's changed records via...

DataTable dtChanges = mydataset.mytable.GetChanges();

You could then bind that table to another grid. You could have both grids
on the same form if you want. Then add to the FocusChange() method the
binding of "dtChanges" to the 2nd grid. Now the user can see the changes
that would be committed as they are making the changes.

Michael Lang

"XIA Chengbin" <xiacb@shdouble.com> wrote in message
news:%23S8uWXbVDHA.2164@TK2MSFTNGP09.phx.gbl...
> Hello!
>
> Would anyone kindly teach me how to programmatically post proposed values
> for a row in windows form
> datagrid?
>
> The reason that I raise this question is -- whenever I call
> OdbcDataAdpter.Update() method to apply updates and inserts the user
> performed on a
> datagrid, I would always lose the modifications on the row that is last
> edited. I have to ask my users to manually click another row to post all
> proposed values to the dataset.
>
> By the way, this code fails to be effective:
>
> this.BindingContex[mydataset.mytable].EndCurrentEdit(); //this = the
> form
>
> (My datagrid is bound to "mydataset.mytable", so I'm NOT using the wrong
> CurrencyManager.)
>
>
> TIA,
> XIA Chengbin
>
>



Re: How to programmatically post proposed values for a row in windows form datagrid? by Michael

Michael
Wed Jul 30 10:03:47 CDT 2003

Thanks, but I am American. My family name, Lang, is actually German.

"XIA Chengbin" <xiacb@shdouble.com> wrote in message
news:Ovc3UvkVDHA.1680@tk2msftngp13.phx.gbl...
> thank you, michael! you write perfect english, though you seem to be my
> countryman...
>
>



Re: How to programmatically post proposed values for a row in windows form datagrid? by XIA

XIA
Wed Jul 30 23:14:25 CDT 2003

Sorry for this small mistake, michael, there are so many Lang's in China.