2012-12-11 2 views
4

DataTable을 사용하여 메시지 목록을 표시하고 있습니다.Datatables 행을 가져 오지 않고 데이터를 클릭하십시오.

쿼리 문자열의 페이지에 전달되는 ID를 기반으로 특정 데이터 행을 얻는 방법이 필요합니다.

ex. www.webpage.com?id=2

이미 id가 jQuery 변수에 있습니다. 이제 해당 ID와 연결된 DataTable 행에 액세스하면됩니다.

기본적으로 행을 클릭하지 않고 참조해야합니다.

제안 사항?

+0

dataTables에서'fnSelect()'함수를 사용해 보셨습니까? – dnagirl

+0

나는 ... 그 사람은 무엇을합니까? API 목록을 살펴 봤는데 현재 목록에있는 목록이 보이지 않습니까? 새로운 것이 든 오래된 것일까? – Silverwulf

+0

요소에 대한 참조 만 필요합니까? 배열에있는 행의 데이터를 의미합니까? – Gigo

답변

8

하나의 방법은 사용할 수 있었다 fnGetPosition 여기서

var rowIndex = table.fnGetPosition($("some selector").closest('tr')[0]); 
//some selector = should select some hidden element inside a row that 
//contains the relevant id 
var aData = table.fnGetData(rowIndex ); 
alert(aData[0]);// will show first column data 

fnGetData 특정 ID로 행을 선택하는 외부 버튼jsfiddle example작업

로우로를 선택하는 또 다른 예 페이지로드시 특정 ID (준비 됨)jsfiddle example N#2

,

$("#example input[value=\'TridentVal\']") 

example 테이블 ID입니다 필요한 ID와 TridentVal 교체 :

는 ... 기능

$("#wow").click(function() { 

    var rowIndex = table.fnGetPosition($("#example input[value=\'TridentVal\']").closest('tr')[0]); 
    alert(rowIndex); 
    var aData = table.fnGetData(rowIndex); 
    alert(aData[0]); // will show first column data 
});​ 

이 관련 데이터로 입력을 선택하는 방법이다에서보세요

+0

이것은 유망 해 보입니다 ... fnGetPosition을 사용하여 필요한 특정 행을 참조하는 방법은 무엇입니까? 예 : ID = 2 인 행? – Silverwulf

+0

그냥 .closest ('tr') [2]라고 말하고 싶습니까? – Silverwulf

+0

아니요,'.closest ('tr') [0]'그대로 ... 행의 ID를 보유하는 열을 보유하고 있습니까? ID_OF_THE_ROW "'... – Daniel

2

먼저 테이블 행을 jQuery를 사용하여 가져와야합니다.

var $rowNode = $('#myTable').find('tbody tr:eq(0)').get(0); 


그런 다음 당신은 행 데이터를 얻을 수 fnGetData를 사용합니다. 당신이 너무 매개 변수로 행 인덱스를 통과 할 수 있도록

var data = table.fnGetData($rowNode); 

fnGetData은 행 노드 또는 정수를 acccepts.

demo

+0

나는 전달 된 ID에서 적절한 행 색인을 얻는 방법에 대해 갈까요? – Silverwulf

+1

@CraigThompson 제 코드에서 인덱스 0에'tr'을 가져 오는'eq'를 사용하고 있습니다. 이것을'eq (1)','eq (2)','eq (n)'로 변경할 수 있습니다. 또는'index()'를 사용하십시오. –

+0

@CraigThompson 왜 행 인덱스를 가져 오려면 행 노드를 매개 변수로 전달할 수 있습니다. –

1

당신이 TableTools 확장자를 사용하는 경우, 당신은 fnSelect()을 사용할 수 있습니다. docs에서 : 그것은 당신의 ID를 가지고있는 행을 선택 있도록

$(document).ready(function() { 
    $('#example1').dataTable({ 
     "sDom": 'T<"clear">lfrtip', 
     "oTableTools": { 
      "sRowSelect": "single" 
     } 
    }); 

    // Select the first row in the table automatically 
    var oTT = TableTools.fnGetInstance('example1'); 
    oTT.fnSelect($('#example tbody tr')[0]); 
}); 

당신은 물론 선택기를 수정할 것입니다.

+0

불행히도 올바른 행을 선택하기 위해 해당 선택기를 수정하는 방법을 모르겠습니다. – Silverwulf

관련 문제