2013-07-25 9 views
1

현재 편집 가능한 열이있는 DataTable을 만들려고합니다. 내가 찾은 최고의 사례는 DataTables 자신의 웹 사이트에 있습니다 : http://www.datatables.net/release-datatables/examples/api/editable.html.onblur 중에 편집 가능한 DataTable에서 항상 이전 값 (새 값이 아님)을 검색합니다.

모든 것이 완벽하게 작동합니다. 단, 사용자가 입력 한 새로운 값을 캡쳐하고 onblur가 서버 측에 새 값을 보내는 것이 유일한 문제입니다. 전송 된 값은 항상 원래 값이며 사용자가 입력 한 값이 아닙니다. 참고 : 서버 측에서 새 값을 검색하는 handler.ashx 핸들러를 사용합니다. 여기

표시하려면 코드 인 DataTable에 : 나는 "제출"을 값까지 전달 및 onblur

public class Handler : IHttpHandler { 

    public string editExamCode(HttpContext context) 
    { 
     String newValue = context.Request.Form.Get("newValue"); 
    } 
} 

공지 사항 : 여기

$(document).ready(function() { 

    var oTable = $('#example').dataTable({ 
     "sAjaxSource": "displayTable.ashx", 
     "aoColumns": [ 
       { "sTitle": "examCode"}, 
       { "sTitle": "division" }, 
      ], 
     "fnDrawCallback": function() { 
      $('td').editable('handler.ashx', { 
       "submitdata": function (value, settings) { 
        return { 
         examCode: $(this).parent().find(":first").text(), 
         columnPosition: oTable.fnGetPosition(this)[2], 
         newValue: value 
        }; 
       }, 
       onblur : "submit", 
      }); 
     } 


    }); 
}); 

이 handler.ashx 내 코드입니다 newValue 변수? 항상 값에 전달되는 값은 항상 원래 값이며 사용자가 입력 한 새 값이 아닙니다.

이 방법이 있습니까?

감사합니다. 도움을 주시면 감사하겠습니다.

답변

1

newValue : value가 필요 없다고 생각합니다.

이 코드보십시오 :

$(document).ready(function() { 

    var oTable = $('#example').dataTable({ 
     "sAjaxSource": "displayTable.ashx", 
     "aoColumns": [ 
       { "sTitle": "examCode"}, 
       { "sTitle": "division" }, 
      ], 
     "fnDrawCallback": function() { 
      $('td').editable('handler.ashx', { 
       "submitdata": function (value, settings) { 
        return { 
         examCode: $(this).parent().find(":first").text(), 
         columnPosition: oTable.fnGetPosition(this)[2] 
        }; 
       }, 
       onblur : "submit", 
      }); 
     } 


    }); 
}); 

을 그리고 핸들러는 바로 "값"변수를 찾을 것입니다 :

public class Handler : IHttpHandler { 

    public string editExamCode(HttpContext context) 
    { 
     String newValue = context.Request.Form.Get("value"); 
    } 
} 
+0

와우, 작동합니다. 진지하게, 나는 이것을 알아 내려고 어제 반나절을 보냈다! – RaKku