2012-12-05 2 views
0

MVC 인트라넷에서 인라인 편집에 사용하는 DataTable에 새 행을 만드는 데 사용하는 코드가 있습니다.동적 셀 수가있는 DataTable에 행을 추가하는 방법

각 행에는 4 개의 셀이 있습니다. 2 개는 편집 데이터 용이고 2 개는 편집 및 삭제 링크입니다.

이 표는 새로 만들, TestFields, 우리의 DB에있는 테이블의 값을 편집하는 데 사용 등

우리는 따라서 두 개의 헤더, 이름 및 설명, 두 세포를했다.

지금 완전히 동일한 코드를 사용하여 완전히 다른 작업을 수행하고 있습니다.

헤더 그러므로 내가 한 헤더 또는

그래서 내가 TestFields 객체의 수에 따라 X의 셀이 새 행을 추가 할 수 있어야합니다 (100)를 가질 수 있습니다, 지금은 기존 TestFields 이름있는 나는 모델에서 얻는다.

그래서 이것은 내가 여기

Name Description 
    -------------------------------- 
    Name1 Description1 Edit or Save Delete 
    Name2 Description3 Edit or Save Delete 
    Name1 Description1 Edit or Save Delete 

가 나는 두 세포 + 편집/저장/delet 링크, 내가 필요로하는 새 테이블 지금

과 같은

그래서 아무 문제가 필요 알고 있었다 무엇인가

Name1 Name2 Name3 Name4 Name4 ... 
    -------------------------------- 
    Value1 Value2 Value3 Value4 Value5 Edit or Save Delete 
    Value1 Value2 Value3 Value4 Value5 Edit or Save Delete 
    Value1 Value2 Value3 Value4 Value5 Edit or Save Delete 

는 그래서 즉 코드의 비트

var aiNew = oTable.fnAddData(['', '', 
       '<a class="edit" href="">Edit</a>', '<a class="delete" 
01 23,516,

var aiNew = oTable.fnAddData(['', 
       '<a class="edit" href="">Edit</a>', '<a class="delete" 

또는 내가 가진 TestFields의 수에 따라 달라집니다

var aiNew = oTable.fnAddData(['', '', '', '' ,'' ,'','','','', 
       '<a class="edit" href="">Edit</a>', '<a class="delete" 

수 있습니다.

새 행을 작성하기위한 전체 코드입니다. 아이디어가 있으십니까?

$('#new').click(function (e) 
       e.preventDefault(); 

       **var aiNew = oTable.fnAddData(['', '', 
      '<a class="edit" href="">Edit</a>', '<a class="delete" href="">Delete</a>']);** 
       var nRow = oTable.fnGetNodes(aiNew[0]); 
       editRow(oTable, nRow, false); 
       nEditing = nRow; 
      }); 

답변

0

나는 그것을 해결할 수있었습니다. 해결책은 다음과 같습니다.

$('#new').click(function (e) { 
      e.preventDefault(); 

      var fieldsCount = $("#FieldsCount").val(); 
      var row   = {}; 

      for (var i = 0; i < fieldsCount; i++) { 
       row[i] = ''; 
      } 

      row[fieldsCount]    = '<a class="edit" href="">Edit</a>'; 
      row[parseInt(fieldsCount) + 1] = '<a class="delete" href="">Delete</a>'; 

      var aiNew = oTable.fnAddData(row); 
      var nRow = oTable.fnGetNodes(aiNew[0]); 

      editRow(oTable, nRow, false); 
      nEditing = nRow; 
     }); 
관련 문제