2010-07-06 5 views
13

Я пытаюсь реализовать функцию на JQuery DataTable, которая возвращает 1-й и 4-й столбец щелкнули строкиJQuery DataTable Cell из строки нажмите

я следующий этот примером, что позволяет мне манипулировать клику ряд http://datatables.net/examples/api/select_single_row.html

, думая, что я могу изменить этот обработчик, чтобы сделать процедуры чтения значений ячейки и использовать значение по своей собственной логике

/* Add a click handler to the rows - this could be used as a callback */ 
$("#example tbody").click(function(event) { 
    $(oTable.fnSettings().aoData).each(function(){ 
     $(this.nTr).removeClass('row_selected'); 
    }); 
    $(event.target.parentNode).addClass('row_selected'); 
}); 

я также прийти с этой небольшой фр сегмента кода ом DataTable форум http://datatables.net/forums/comments.php?DiscussionID=1384&page=1#Item_0

$('#example tbody tr').click(function() { 
    // Alert the contents of an element in a SPAN in the first TD 
    alert($('td:eq(0) span', this).html()); 
}); 

может я иметь какой-либо указатель, так что я могу получить 1-й и 4-й столбец щелкнул поле?

Следующая часть у меня выше решена, благодаря зарубка

однако у меня есть следующая часть проблемы. когда я инициализировать таблицу я использую

/* Init the table */ 
    oTable = $('#filetable').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "/crvWeb/jsonFileList.do", 
     "fnServerData": function (sSource, aoData, fnCallback) { 
      $.ajax({ 
       "dataType": 'json', 
       "type": "POST", 
       "url": sSource, 
       "data": aoData, 
       "success": fnCallback 
      }); 
     } 
    }); 

мой сервлет принимает реж параметр запроса и возвращает список в DataTable в качестве ответа JSon.

/crvWeb/jsonFileList.do 

Как я могу добавить и получить ответ serlvet с запросом на отправку, чтобы обновить таблицу?

ответ

25

Вы можете использовать .delegate() простой здесь, как это:

$("#example tbody").delegate("tr", "click", function() { 
    var firstCellText = $("td:first", this).text(); 
    var fourthCellText = $("td:eq(3)", this).text(); 
}); 

You can try out a demo here

С .delegate()this относится к <tr>, так что это мы обработки щелчок, делая вещи совсем немного чище .. и это все еще только один обработчик событий на уровне <tbody>, а не один за <tr>.

+0

следующий вопрос. если я хотел бы передать значение в сетку, чтобы обновить его, как я должен это делать, чтобы использовать функцию сообщения для обновления таблицы на лету? – nokheat

+0

@nokheat - Как вы это понимаете? Если вы можете описать немного больше о том, откуда берутся ценности, и я могу помочь ... Мне нужно свернуть на ночь, но ответьте здесь, и я проверю это утром :) –

+0

Мне нужно показать некоторый сегмент кода, пожалуйста, обратитесь к моему новому редактированию. – nokheat

0

Это должно сделать трюк, если я правильно читать ваш код:

$("tr.row_selected td:nth-child(1), tr.row_selected td:nth-child(4)"); 

Она должна возвращать первый и четвертый ребенок всех элементов т.р. с классом row_selected.

+0

Я проверяю свой код и ваше решение, но я все еще пытаюсь его обойти. главный конвертер, могу ли я действительно взять ссылку с ввода обработчика? например $ ("# example tbody"), и использовать этот идентификатор, чтобы получить ссылку на ячейку и, следовательно, ее значение? – nokheat

Смежные вопросы