2017-02-26 1 views
0

class = "classAdd"인 버튼을 클릭 한 후 HTML5 테이블에 동적으로 행을 추가해야하며 행의 한 열에 문제가 있습니다. 그것은 kendo의 드롭 다운 목록이지만, 잘 표시되지 않습니다.jQuery를 사용하여 Html5 테이블에 동적으로 Kendo DropDownList를 추가하는 방법

HTML5 :

이 첫 번째 행을이었고, 그것은 작품을 좋아하지만 난 검도의 드롭 다운 목록이 확인 표시하지 않는 새 행을 추가하려고 할 때,이 내가 버튼을 추가 클릭 한 후 발생
<table id="tablePost" class="table table-bordered table-striped"> 
    <thead> 
     <tr> 
      <th>Producto</th> 
      <th>Precio</th> 
      <th>Cantidad</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr class="productos-presupuesto"> 
      <td> 
       @(Html.Kendo().DropDownList() 
       .Name("productoPresupuesto") 
       .OptionLabel("Seleccione un producto...") 
       .DataTextField("DescripcionProducto") 
       .DataValueField("CodigoProducto") 
       .HtmlAttributes(new { style = "width:100%" }) 
       .Filter("contains") 
       .DataSource(source => 
       { 
        source.Read(read => 
        { 
         read.Action("ObtenerProductoAsync","Mantenimiento"); 
        }); 
       }) 
       ) 
      </td> 
      <td> 
       <input class="form-control" type="number" name="precio" /> 
      </td> 
      <td> 
       <input class="form-control" type="number" name="cantidad" /> 
      </td> 
      <td> 
       <button type="button" id="btnAdd" class="btn btn-xs btn-primary classAdd">Add more</button> 
      </td> 
     </tr> 
    </tbody> 
</table> 

더.

jQuery를 :

$(document).ready(function() { 
     $(document).on("click", ".classAdd", function() { // 
      var rowCount = $('.productos-presupuesto').length + 1; 
      var contactdiv = '<tr class="productos-presupuesto">' + 
       '<td><input id="productoPresupuesto' + rowCount + '" /></td>' + 
       '<td><input type="text" name="precio' + rowCount + '" class="form-control" /></td>' + 
       '<td><input type="text" name="cantidad' + rowCount + '" class="form-control" /></td>' + 
       '<td><button type="button" id="btnAdd" class="btn btn-xs btn-primary classAdd">Add more</button>' + 
       '<button type="button" id="btnDelete" class="deleteContact btn btn btn-danger btn-xs">Remove</button></td>' + 
       '</tr>'; 

       $("#productoPresupuesto"+ rowCount).kendoDropDownList({ 
        dataTextField: 'DescripcionProducto', 
        dataValueField: 'CodigoProducto', 
        dataSource: { 
         transport: { 
          read: { 
           type: "jsonp", 
           url: "Mantenimiento/ObtenerProductoAsync" 
          } 
         } 
        } 

       }); 

      $('#tablePost').append(contactdiv); 
     }); 
    }); 

내가 어떻게이 문제를 해결할 수 있습니까?

답변

0

이동이 라인 : 그래서이 하나 이상인 것을

$('#tablePost').append(contactdiv); 

: 당신이 변수 'contactdiv'에 내장되어있는 HTML이

$("#productoPresupuesto"+ rowCount).kendoDropDownList({ 

는 전에 DOM에 추가 될 필요가 위의 줄에있는 jquery 선택기를 사용하여 요소를 찾아서 드롭 다운으로 변환 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 Mantenimiento 컨트롤러의 ObtenerProductoAsync 메서드가 반환하는 값은 드롭 다운 목록에서 선택할 값을 표시하지 않습니다. –

+0

jsonp 형식을 제거 했으므로 이제는 정상적으로 작동합니다. :) –

+0

도와 줘서 기쁩니다. Jsonp는 도메인 간 요청을 처리하기 위해 약간 다르게 작동하므로 결과를 처리하기 위해 콜백을 정의해야합니다. 네가 여기 필요하지 않은 것 같아. – NigelK

관련 문제