iSeller Commerce
iSeller POS Retail
iSeller POS F&B
iSeller POS Express
Crosslight
WebUI
ClientUI
What's New
Download Trial
Web Solution
Mobile Solution
Enterprise Solution
Custom Development
Blog
Community
Latest Development Blogs
ForumPostTopic
Browse By Tag
Hello,
We ran into this issue while trying to track down something else. When you load a set of rows using InitializeDataSource they should each start with a RowState of 'Unchanged'. The RowState should stay this way unless is it deleted or modified. We've found that if you group a grid on a column that is using a WebValueList and the setting UseValueListForSorting is set to 'Yes' that EVERY row in the grid will have a RowState of Modified. That means if you do processing of rows on PostBack as we do that EVERY row will be updated. In our case that means getting row/cell values passed to a stored procedure. We probably wouldn't have noticed this except we were getting an error that was totally unrelated to the row we were updating.
I've put together an example that should work if you drop it in the WebGridSamples project.
I did an update today and am running version 7.0.7200.403 but the issue is still there.
Any help would be much appreciated as this is a current issue in our live application. Customers are experiencing adverse results due to this error.
Thanks,Scott French
It seemsthe issue is caused by a bug in our WebGrid. A bug report has been submitted to our developer.
In the mean time, you could try using this workaround. The idea is to check whether the row has ny field changed, if there is no change invoke the acceptchanges function to reset the rowstate. Here is the snippet, the snippet is in C#:
void WebGrid1_InitializeRow(object sender, ISNet.WebUI.WebGrid.RowEventArgs e){ if (e.Row.Type == RowType.Record) { DataRowView dr = (DataRowView)e.Row.DataRow; try { bool identicalRow = true; if (dr.Row.RowState == DataRowState.Modified) { for (int i = 0; i < dr.Row.Table.Columns.Count; i++) { if (dr.Row[i, DataRowVersion.Original].ToString() != dr.Row[i, DataRowVersion.Current].ToString()) { identicalRow = false; break; } } if (identicalRow) dr.Row.AcceptChanges(); } e.Row.Cells.GetNamedItem("RowState").Value = dr.Row.RowState.ToString(); e.Row.Cells.GetNamedItem("RowState").Text = dr.Row.RowState.ToString(); } catch (Exception excp) { //e.Row.Cells.GetNamedItem("RowState").Value = "ERROR" //e.Row.Cells.GetNamedItem("RowState").Text = "ERROR" } }}
I have just been updated about this issue, a fix will be available in the next hotfix release.
or
Choose this if you're already a member of Intersoft Community Forum. You can link your OpenID account to your existing Intersoft Social ID.
Choose this if you don't have an Intersoft account yet. Your authenticated OpenID will be automatically linked to your new Intersoft account.
Enter your Wordpress Blogname