DataTable – 在jQuery中获取所有选定行的简便方法
我如何从jQuery DataTable ( https://datatables.net )获取所有选定的行。
这里在stackoverflow中找到了计算所选行的方法,但是我需要将选定的行数据抛到下一个JavaServletPage来使用它。
我的DataTables代码配置:
$(document).ready(function() { var lastBksId = null; var rowClass = "odd" var table = $('#table_view').DataTable({ scrollX: true, scrollY: '76vh', order: [[ 0, "desc" ]], scrollCollapse: true, paging: false, info: false, ordering: false, searching: false, fnRowCallback: function(row, data, index){ if (lastBksId == null){ lastBksId = data[0]; } if (lastBksId == data[0]){ row.className = rowClass; } else { if (rowClass == "odd"){ rowClass = "even"; } else {rowClass = "odd"; } row.className = rowClass; lastBksId = data[0]; } } }); $('#table_view tbody').on( 'click', 'tr', function () { $(this).toggleClass('selected'); } ); } );
HTML – 表格:
<% EntityManager em = Persistence.createEntityManagerFactory("man-jpa").createEntityManager(); int pageSize = 200; Class entyClass = NlHist.class; CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = builder.createQuery(entyClass); Root from = criteriaQuery.from(NlHist.class); CriteriaQuery select = criteriaQuery.select(from); CriteriaQuery where = criteriaQuery.where(builder.isNotNull(from.get("pfcM"))); //CriteriaQuery having = criteriaQuery.having(builder.gt(builder.count(from.get("id")), 1)); TypedQuery typedQuery = em.createQuery(select); typedQuery.setFirstResult(0); typedQuery.setMaxResults(pageSize); List rows = typedQuery.getResultList(); // Getting Table Headers [...] %> ${id} ${idm} ${sim} ${nim} ${onkz} ${rfnr} ${toid} ${inlief} ${bkto} ${kdnr} ${sta} ${stat} ${ints} ${lats} ${rv} ${rvf} ${pfc} ${pfcm} ${ps} ${pa} ${ts} ${ra} ${iaid} ${aa} ${io} ${bksid} ${bksidm} ${sim} ${nim} ${onkz} ${rfnr} ${toid} ${inlief} ${bkto} ${kdnr} ${sta} ${stat} ${ints} ${lats} ${rv} ${rvf} ${pfc} ${pfcm} ${ps} ${pa} ${ts} ${ra} ${iaid} ${aa} ${io}
是一种在我的JS中编写函数的方法 – 配置 – 部分?
像这些:
$('#...').on( ' ', ' ', function () { } );
任何帮助,将不胜感激 !
您可以迭代行数据
$('#button').click(function () { var ids = $.map(table.rows('.selected').data(), function (item) { return item[0] }); console.log(ids) alert(table.rows('.selected').data().length + ' row(s) selected'); });
演示: 演示示例