In my attachment on the left is the result with not using a primaryKey ( this is desired ). If I use a primaryKey I get what you see on the right.
The header column name for the first column you see is an under score. It does not matter what I set the primaryKey to both cause this strange result.
my data is as follows: [{"_":"Adaptive Control Switch","Value":"1"},{"_":"Adaptive Max ACT to Allow Adaptive Learning","Value":"180"},{"_":"Adaptive Max ECT to Allow Adaptive Learning","Value":"230"},{"_":"Adaptive Min ACT to Allow Adaptive Learning","Value":"-20"},{"_":"Adaptive Min ECT to Allow Adaptive Learning","Value":"150"},{"_":"ADEFTR","Value":"0.000225"},{"_":"Adpative Correction Max Allowed Learned","Value":"0.75"},{"_":"Adpative Correction Min Allowed Learned","Value":"0.25"},{"_":"Amplitude Multiplier for Adaptive","Value":"0.52"},{"_":"Dead Band to Not Adapt","Value":"0"},{"_":"Green Engine Adaptive Gain","Value":"1"},{"_":"Load to Define Decel for Adaptive","Value":"0.14"},{"_":"Max TP to Allow Learning","Value":"1023"},{"_":"Min ECT Temp for Adaptive","Value":"150"},{"_":"Min Load to Allow Learning","Value":"0.1"},{"_":"Number Of Warm Up Counters for Fast Adaptive","Value":"5"},{"_":"RPM to Define Decel for Adaptive","Value":"1000"},{"_":"Switch to Shut Off Kam Fuel Reset","Value":"0"},{"_":"Unique Decel Kam Cell Switch","Value":"1"},{"_":"Warm Up Temp for Adaptive After Start","Value":"120"}]
my column are : [{"headerText":"_","key":"_","dataType":"string"},{"headerText":"Value","key":"Value","dataType":"string"}]
This is how I do my checkboxes in my rows loop
this.gridIDMap.cellAt( 0, rows ).innerHTML = "<input name = 'check" + rows + " align='left' type='checkbox'>" + this.gridIDMap.getCellText( rows, _spaceChar )
Hello seang,
If you have primaryKey, getCellText() requires row data key(primary key), that's why you're facing different behavior.
Try using template, instead of looping through the rows and set them new values.
You're columns definition should look like this:
columns: [ { headerText: "_", key: "_", dataType: "string", template: "<input name = 'check${_} align='left' type='checkbox'> ${_}" }, { headerText: "Value", key: "Value", dataType: "string" } ]
Thanks, Deyan
MY data changes based on many things. The entire use of our software is dynamic not static. So in some circumstances I must add check boxes and other not. This is why I must loop, can this be done?
this fix will work, thx again for the help.
We do have this implemented in our testing but our ID is never the same so to handle this we do the following.
var INSTANCE = this; //set at the class var declarations.
//gets a column from jason data.
for ( i in inData[0] )//this gets us a the first column it finds. { var priK = i; } this.priKey = priK;
This seems to be working ok. I'll close this issues as soon as I finish updating all the code to use the new method. Thx so much for your efforts.
Hello,
Thank you for the update. You should be able to achieve this by using a dummy primary key. You will want to have a dummy primary key and column with matching ID. I have attached a modified version of the sample that demonstrates this behavior.
Please let me know if you have any further questions concerning this matter.
Yes this option works fine for us in the issue related to changing the text in a grid. However the issue with start edit mode is still at large. I know info is scattered all over and difficult to understand all the problems this [primary key caused. Though this above fix will take care of most troubles found. We still need a way to enter edit mode without getting errors about pri key. I tried a dummy key like
primaryKey : "???"
but I still get
Error: In order to support update operations after a row was deleted, application should define "primaryKey" in options of igGrid.
on igGridUpdating.startEdit(...)
and when double clicking on a cell.
Thank you for the update. The idea with this one is that you would be responsible for both updating the text of the grid and the value in the json data. I am attaching a sample that demonstrates how you may achieve this behavior. Click the button to modify the value of the first cell of the grid. The cellAt method gets the cell at the column then row. To see more information please see the following link then click the Methods tab.
http://help.infragistics.com/jQuery/2013.2/ui.iggrid