jquery datatable如何从MVC解析和添加行

时间:2012-07-02 12:50:39

标签: javascript jquery asp.net-mvc datatables

好的,我有以下

function AddSpellRow() {
    var row = $('.tbl_spells').dataTable().fnGetData(0);
    $('.tbl_spells').dataTable().fnAddData(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>

如何使用[#of rows]更改[0]和underscore0underscore以及使用下划线数量的rowsunderscore?

另外我需要type =“hidden”value =“4”,type =“hidden”value =“0”

我尝试在行上替换它并不喜欢它。

1 个答案:

答案 0 :(得分:0)

我不得不使用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');