简体   繁体   中英

jquery datatable how to parse and add row from MVC

OK I have the following

function AddSpellRow() {
    var row = $('.tbl_spells').dataTable().fnGetData(0);
    $('.tbl_spells').dataTable().fnAddData(row);
}

which add this row

<tr class="odd">

   <td class="">    
     <input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Spells_0__Id" name="Spells[0].Id" type="hidden" value="4"> 

     <select data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Spells_0__Spell_Id" name="Spells[0].Spell.Id" class="valid">
       <option value="">---Select --</option> 
       <option value="1">Rains</option> 
     </select>

   </td>

   <td class="">
    <input data-val="true" data-val-number="The field PriestLevel must be a number." data-val-required="The PriestLevel field is required." id="Spells_0__PriestLevel" name="Spells[0].PriestLevel" type="text" value="10" class="valid">
   </td>

</tr>

How do i change [0] and underscore0underscore with [#of rows] and underscorenumber of rowsunderscore ?

Also i need the type="hidden" value="4" with type="hidden" value="0"

i tried replace on row and it doesnt like it.

I had to use fnAddData

    var otable = $('.tbl_spells').dataTable();
    var row = otable.fnGetData(0),
    row_count = otable.fnGetData().length;

    var addId = otable.fnAddData(row);
    var newRow = otable.fnSettings().aoData[addId[0]].nTr;

    var theNode =  $(newRow.cells[0])  ;
    $(theNode[0].children[0]).attr('id', 'Spells_' + row_count + '__Id');
    $(theNode[0].children[0]).attr('name', 'Spells[' + row_count + '].Id');
    $(theNode[0].children[0]).attr('value', 0 );

    $(theNode[0].children[1]).attr('id', 'Spells_' + row_count + '__Spell_Id');
    $(theNode[0].children[1]).attr('name', 'Spells[' + row_count + '].Spell.Id');

    theNode = $(newRow.cells[1]);
    $(theNode[0].children[0]).attr('id', 'Spells_' + row_count + '__PriestLevel');
    $(theNode[0].children[0]).attr('name', 'Spells[' + row_count + '].PriestLevel');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM