2016-02-15 3 views
0

Я пытаюсь добавить цикл for, который отобразит список элементов в раскрывающемся списке. Однако я не уверен, как я могу вставить его в мою datatable.fnAddData.Как добавить для цикла в таблицу данных добавить новую строку

var oTable; 

$(document).ready(function() { 

oTable = $('#TempTable6').dataTable({ 
    responsive: true 
}); 

$("#addNew").click(function (e) { 
    var rowCount = $('.exercise-records').length; 
    var html = '<tr style="border:1px solid black" class="exercise-records"><td>&nbsp;&nbsp;&nbsp;' + (rowCount + 1) + '&nbsp;&nbsp;</td>' 
    $.ajax({ 
     url: "/AssignExercisesViewModel/InitialiseExercises", 
     datatype: "json", 
     traditional: true, 
     success: function (result) { 

     oTable.fnAddData([ 
      '<tr style="border:1px solid black" class="exercise-records"><td>&nbsp;&nbsp;&nbsp;' + (rowCount + 1) + '&nbsp;&nbsp;</td>', 
      '<td><select class="form-control" data-val="true" data-val-number="The field ExerciseRegionID must be a number." id=ddlRegion' + rowCount + ' name=[' + rowCount + '].ExerciseRegionID><option value="">Select an Exercise Region</option>' + 
       'for (var i = 0; i < '+ result.data.length +'; i++) {' + 
        '<option value= ' +result.data[i].Value +'>' + result.data[i]+'   </option>' + 
       '}' 
      //more columns with additional information 
     ]); 
     } 
    }); 
    e.preventDefault();  
}); 
} 

Коды выше коды, которые связаны с добавлением новых строк, как вы можете увидеть я уже вставлен цикл. Однако есть ошибки, когда я запускаю этот цикл for, я не уверен, как я должен писать его, чтобы он мог читать его как цикл for.

ответ

1

сохранить его в виде строки, прежде чем положить его внутрь oTable.fnAddData массива

var tblRow = '<tr style="border:1px solid black" class="exercise-records">'; 
    tblROw += '<td>&nbsp;&nbsp;&nbsp;' + (rowCount + 1) + '&nbsp;&nbsp;</td>'; 
    tblROw += '<td><select class="form-control" data-val="true" data-val-number="The field ExerciseRegionID must be a number." id=ddlRegion' + rowCount + ' name=[' + rowCount + '].ExerciseRegionID><option value="">Select an Exercise Region</option>'; 

for (var i = 0; i < result.data.length ; i++) { 
    tblRow += '<option value= ' +result.data[i].Value +'>' + result.data[i]+'</option>'; 
} 

tblRow += '</select>'; 
tblRow += '</td>'; 
tblRow += '</tr>'; 

и добавить tblRow внутри oTable.fnAddData

oTable.fnAddData([ 
    tblRow  
    //more columns with additional information 
]); 
+0

Благодарим за помощь! Попробуем этот метод – Ugine

+0

@Ugine Ваше приветствие. Хорошего дня. :) – roullie

1

Попробуйте использовать each и построить список опций первый и использовать row.add добавить новый ряд к данным datatable

var option = []; 

    $.each(result.data,function(i,v) { 
     option.push('<option value= "' +v.Value +'">'+v+'</option>') 
    } 

     oTable.row.add(['<tr style="border:1px solid black" class="exercise-records"><td>&nbsp;&nbsp;&nbsp;' + (rowCount + 1) + '&nbsp;&nbsp;</td><td><select class="form-control" data-val="true" data-val-number="The field ExerciseRegionID must be a number." id=ddlRegion' + rowCount + ' name=[' + rowCount + '].ExerciseRegionID><option value="">Select an Exercise Region</option>' + option +'</select>//more columns with additional information']); 
+0

Большое спасибо за вашу помощь, попробуем этот метод. : D – Ugine

Смежные вопросы