How to set column names with an array of strings?

How to set column names with an array of strings?

luizbillsantosluizbillsantos Posts: 2Questions: 0Answers: 0

For example,
I have an array like this:

var columnsKeys = ["ID", "Name", "Age", "City"];

how to set the property "columns": [
{ "data": columnkeys[0] },
{ "data": columnkeys[1] },
{ "data": columnkeys[2] },
{ "data": columnkeys[3] },
{ "data": columnkeys[4] }
]

dynamically like a simple "columns": columnsKeys, ?

thanks

Replies

  • rf1234rf1234 Posts: 2,806Questions: 85Answers: 406

    looks like "columns" is an array of objects.
    Why not try this:

    var label = ["ID", "Name", "Age", "City"];
    
    var columnKeys = 
    [ {data: label[0]}, {data:label[1]}, {data:label[2]}, {data: label[3]} ];
    
    columns: columnKeys;
    
  • luizbillsantosluizbillsantos Posts: 2Questions: 0Answers: 0

    Thanks so much rf1234, it's so simple, kkkk

  • rf1234rf1234 Posts: 2,806Questions: 85Answers: 406
    edited May 2017

    but this wont' really work if you have a more complex setup with multiple properties of a column, e.g. like this:

    columns: [            
        {   data: null,
            render: function ( data, type, row ) {
                return row.gov.name + ', ' + row.govdept.name + 
                        ' (' + row.gov.regional_12 + '); ' +
                        renderGovType(row.gov.type);
            }    
        },
        {   data: "contract.instrument",
            render: function ( data, type, row ) {
                return renderInstrument(row.contract.instrument);
            }
        }
    ],
    

    In case you only wanted to change the "data" property of each object within the array you could do something like this:

    var columns = [              
            {   data: "zero",
                bla: "bla"   },
            {   data: "one",
                bla: "bla1"  },
            {   data: "two"  }
         ]
    
    var columnKeys = ["ID", "Name", "Age"];
    
    var i = 0;
    while (columns[i]) {
        columns[i].data = columnKeys[i];
        i++;
    }
    alert (columns[0].data);
    

    The alerted value was ID ...

This discussion has been closed.