I have a problem with updating data in the grid, i checked all the samples and could not find the missing thing to get it to work.
My aspx site is getting a command, this command is getting executed against a sql db with the option to get only the schema. Then i add a empty row to it, and fill the DataKeyFields column with some key.
But when i want to postback the values that the user inserted into to the other columns (than the DataKeyFields column), the web application crashes with following exception:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
[FormatException: Input string was not in a correct format.] Infragistics.Web.UI.Framework.Data.DataViewDataSourceAdapter.Update(Object dataItem, IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +1398 Infragistics.Web.UI.Framework.Data.DataSourceObjectView.Update(Object dataItem, IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +62 Infragistics.Web.UI.GridControls.EditingCore.OnAction(String actionType, Object id, Object value, Object tag) +3970 Infragistics.Web.UI.GridControls.GridBehavior.Infragistics.Web.UI.GridControls.IGridBehavior.OnAction(String actionType, Object id, Object value, Object tag) +48 Infragistics.Web.UI.GridControls.GridBot.LoadAdditionalClientState(Object state) +1313 Infragistics.Web.UI.Framework.RunBot.HandleRaisePostDataChangedEvent() +204 Infragistics.Web.UI.GridControls.GridBot.HandleRaisePostDataChangedEvent() +74 Infragistics.Web.UI.Framework.Data.FlatDataBoundControl.RaisePostDataChangedEvent() +37 System.Web.UI.Page.RaiseChangedEvents() +134 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5201What is wrong?
Hello PV85281,
Inform me if you have additional questions.
The answer to your question is “No” – the key field does not have to be only integer type.
Technically it can be any type of data, but proper serialization of some data types can cause issues.
I am sending you an example that uses “string” data as a primary key and key field for the grid.
You can see that the grid is working as expected when row is added to it.
Test the example and let me know if you have additional questions.
I already knew that the "DataKeyFields" property is used to identify the unique records in the Data Source. But in either article there is no word about the required datatype of the columns specified in this property!
Did you read my post?!
The question was:
Is it correct that the column specified in the "DataKeyFields" property got to be data type "integer"? (Because with columns with data type "string" my tests doesn't work.)
Please start answer with simple "Yes" or "No".
Thanks.
Thank you for your feedback.
“DataKeyFields” property is used to identify the unique records in the Data Source. These records are in most cases the Primary Key records in the Data Source. Since the primary keys are in most cases with “integer” type, this property is pointing to them - http://help.infragistics.com/Help/NetAdvantage/ASPNET/2011.1/CLR4.0/html/Infragistics4.Web.v11.1~Infragistics.Web.UI.Framework.Data.FlatDataBoundControl~DataKeyFields.html
You can read more about this property and why it is important here - http://help.infragistics.com/Help/NetAdvantage/ASPNET/2010.3/CLR4.0/html/WebHierarchicalDataGrid_About_Data_Binding.html
Let me know if you need further information about this question.
The grid columns was auto generated and i did provide the data at every postback.
But now i got it working.
Is it correct that the DataKeyFields have to be datatype integer? And when the datasource is a datatable, the DataKeyFields has to be the DataTable.PrimaryKeys to get edditing working?
What when my primary key is datatype string? This isn't uncommon.