Posted 11 May 2020, 1:44 pm EST - Updated 30 September 2022, 2:44 am EST
.NET Framework 4.5.2 OS: Windows Server 2012 RS Standard IIS: 6.2 Application Pool: .NET CLR Version v.4.0.30319 Managed Pipeline Mode: Integrated
Spread.NET Version: 11.45.20183.0
NOTES: The problem below ONLY occurs when hosted in IIS. It does NOT occur when hosted through IIS Express (v.10.0.18362.1). I’m able to debug this problem while attaching to the running IIS process ID from Visual Studio.
ISSUE: We have some logic that checks for changes in the Datasource that has been bound to the FpSpread control. If changes are detected when this fall into additional logic to process those changes. There are no problems with the code detecting changes; however, there is a problem with the result returned.
Example Code:
public static DataTable getUpdatedGrid(FpSpread FpExcel, DataTable beforeDt)
{
FpExcel.SaveChanges();
if (FpExcel.Columns.Count == beforeDt.Columns.Count)
{
// No added headers. HasChanges does not track added headers.
if (((DataSet)FpExcel.DataSource).HasChanges())
{
DataTable changes = ((DataSet)FpExcel.DataSource).GetChanges().Tables[0];
etc...
The code works as expected, it detects the change and makes it to the “DataTable changes” statement. The only problem is the value doesn’t reflect the changes the user made. If the user tries to change a cell from “Click” to “click” the “HasChanges” condition will evaluate to “true”; however, the value remains “Click.”
Below is a screenshot where the user attempted to change a cell value from “False” to “false”. As you can see the case was preserved and not altered.
Please let me know if there any additional information I can provide to help diagnose this issue.
Thanks, Wes