var table = $("#example").DataTable({
columnDefs: [
{ "type": "html-input", "targets": [1, 2, 3] }
]
});
는 데모 http://datatables.net/examples/api/form.html에 기반을 참조하십시오. 그런 다음 dataTables는 반환 된 값을 캐시하여 모든 값을 계속해서 "계산"할 필요가 없습니다. 다행히도 dataTables 1.10.x에는 cells
, rows
및 pages
(invalidate
)이라는 내장 함수가있어 데이터 테이블이 선택한 항목에 대한 캐시를 강제로 설정합니다.
그러나 <input>
을 처리 할 때 값을 편집하면 value
속성 자체가 변경되는 문제가 있습니다. 따라서 invalidate()
으로 전화를 걸어도 오래된 "하드 코드 된"값으로 필터링됩니다.
그러나 이것에 대한 해결책을 찾았습니다.텍스트 영역에 대한
$("#example td input").on('change', function() {
var $td = $(this).closest('td');
$td.find('input').attr('value', this.value);
table.cell($td).invalidate();
});
대신 text()
을 사용합니다 :
$("#example td textarea").on('change', function() {
var $td = $(this).closest('td');
$td.find('textarea').text(this.value);
table.cell($td).invalidate();
});
이를 <input>
의 현재의 값 (새로운 값)과 다음 전화 invalidate
의 value
속성은 <input>
로 변경하는 '포스 <select>
'을 (를) 처리 할 때도 마찬가지입니다. 당신은 관련 <option>
년대의 selected
속성을 업데이트해야 할뿐만 아니라 다음 invalidate()
셀 것
$("#example td select").on('change', function() {
var $td = $(this).closest('td');
var value = this.value;
$td.find('option').each(function(i, o) {
$(o).removeAttr('selected');
if ($(o).val() == value) $(o).attr('selected', true);
})
table.cell($td).invalidate();
});
갈래 바이올린 ->입력 및/또는 드롭 다운의 http://jsfiddle.net/s2gbafuz/ 봅니다 변경 내용 및 검색 새 값에 대한 ...
전 세계적인 검색 기능을 사용하려고합니다. 드롭 다운에서 선택한 값만 검색하려고합니다. 내 질문에 링크에서 예제를보고 "Tokyo"를 입력하면 모든 행이 반환됩니다. 이는 "도쿄"가 모든 드롭 다운의 옵션이기 때문입니다. 내가 선택한 도쿄의 행만 표시하도록 선택할 수 있습니다. "33"을 입력하면 첫 번째 행의 첫 번째 열에 "33"값이 있어도 행이 표시되지 않습니다. – kralco626
좋아, 네가 지금 무슨 말하는지 알 겠어. 일부 검색을했는데 DataTables의 일부인 것으로 보이지 않습니다. 그러나 나는 [이것을] 찾았다 (http://stackoverflow.com/a/16571923/4434366). 그는 드롭 다운의 선택된 값을 검색하는 스 니펫을 작성했습니다. 죄송합니다. 스 니펫을 직접 제공하지 못했습니다. –