I have a datagrid wich is already bound to a dataset, I need toget this dataset,make changes on some data, then rebind the datagrid with the modified dataset. Like this:
datagrid1.datasource=ds1;
..........
//how to get the dataset from the datagrid???
ds2=datagrid1.datasource;
make changes on ds2;
datagrid1.datasource=ds2;
1.
rajathan said://how to get the dataset from the datagrid???
DataSet ds2 = (DataSet)datagrid1.datasource;
2.
rajathan said:rebind the datagrid with the modified dataset.
In general you don't need to rebind the dataset (or need something else to update the grid). The grid should react to changes in the data source. This is the main concept of data binding. There are though some ... small features in dataset events which should be taken into account. If your grid does not update itself after your operations with the dataset - post a message here. There are workarounds to make datagrid update itself (explicit calls).
Hi,Andrej
thanks for the answer, but I got exception at DataSet ds2 = (DataSet)datagrid1.datasource;
It said:"Unable to cast object of type 'System.Windows.Forms.BindingSource' to 'System.Data.DataSet'"
I have 2 ultragrid, A and B. what I want is: when I double click on one row in A, this row will be removed from A, and also that row will be removed from the dataset which is bound to A; mean while, I want to add this row to B, and that row will also be added to the dataset which is bound to B.
Do you know what I mean?
rajathan said:thanks for the answer, but I got exception at DataSet ds2 = (DataSet)datagrid1.datasource; It said:"Unable to cast object of type 'System.Windows.Forms.BindingSource' to 'System.Data.DataSet'"
Please, provide the code for your initial databinding (probably it's not just datagrid1.datasource=ds1;). Also, to be sure we're not too out-of-date: what version of NetAdvantage you use? (and is datagrid1 actually and UltraWinGrid control?)
rajathan said:I have 2 ultragrid, A and B. what I want is: when I double click on one row in A, this row will be removed from A, and also that row will be removed from the dataset which is bound to A; mean while, I want to add this row to B, and that row will also be added to the dataset which is bound to B.
Yes, this should (in general) work without any explicit refresh/update calls.
You're welcome
Dear Andrej
Thanks a lot for your help, it works now!
Thank you very much!!!
Try
DataSet ds = (DataSet)((BindingSource)grid.DataSource).DataSource
Hi Andre
Thranks again for the reply. the code is:
DataSet ds = get data from DB; // use _db.LoadDataSet(cmd, theDataSet, tableName) to load dataset;
BindingSource gridSource = new BindingSource(ds, .TableName);
grid.DataSource = gridSource ;
The version version of NetAdvantage is 2007 Vol. 2;