У меня есть jsp, который onload вызывает js, в котором таблица создается динамически. Ситуация в том, что я никогда раньше не работал над jquery, все, что я знаю, это javascript.Как использовать datatable с динамически созданной таблицей
Я сделал два сценария:
регистр один: когда я создаю статическую таблицу на самой странице JSP она работает безупречно. case two: когда я пытаюсь загрузить ту же таблицу, которая создается динамическим javascript, она терпит неудачу.
Случай I Рабочий код
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/createDynamicTable.js"></script>
<script type="text/javascript" src="../js/jquery.dataTables.js"></script>
<script>
$(document).ready(function() {
$('#testTable').dataTable();
});
</script>
</head>
<body>
<div id="tableDataDiv">
<table id="testTable">
<thead>
<th>h1</th>
<th>h2</th>
<th>h3</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
Случай II не работает код
код JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/createDynamicTable.js"></script>
<script type="text/javascript" src="../js/jquery.dataTables.js"></script>
<script>
$(document).ready(function() {
$('#testTable').dataTable();
});
</script>
</head>
<body onload="getTableData();">
<div id="tableDataDiv">
</div>
</body>
</html>
js code
function getTableData(){
var tableDataDivObj = document.getElementById("tableDataDiv");
var tableObj = document.createElement("table");
tableObj.id = 'testTable';
// header
var theadObj = document.createElement("thead");
var thObj = document.createElement("th");
thObj.innerHTML = 'h1';
theadObj.appendChild(thObj);
thObj = document.createElement("th");
thObj.innerHTML = 'h2';
theadObj.appendChild(thObj);
thObj = document.createElement("th");
thObj.innerHTML = 'h3';
theadObj.appendChild(thObj);
tableObj.appendChild(theadObj);
// body
var tbodyObj;
var trObj;
var tdObj;
tbodyObj = document.createElement("tbody");
var count = 1;
for(i = 0; i < 3; i++){
trObj = document.createElement("tr");
for(j = 0; j < 3; j++){
tdObj = document.createElement("td");
tdObj.innerHTML = count;
trObj.appendChild(tdObj);
count++;
}
tbodyObj.appendChild(trObj);
}
tableObj.appendChild(tbodyObj);
tableDataDivObj.appendChild(tableObj);
}
После того как таблица создается динамически, мы добавляем его в DIV на странице JSP ,
Просьба предложить любые изменения, предложения, чтобы я мог получить этот код. Это просто пример, который я создал из моего настоящего приложения. , который включает полный mvc, где данные таблицы извлекаются из методов службы и dao-файлов. Я могу получить данные в таблицу (я убедился после получения предупреждения на странице jsp). Я не могу использовать datatable по идентификатору таблицы.
Заранее благодарен!
так это то, что я сделал сейчас, и получил другую ошибку: –
так это то, что я сделал, как по предложению: я переехал код вызова из JSP страницы Js страницы сразу после таблицы создано. tableObj.appendChild (tbodyObj); таблицаDataDivObj.appendChild (tableObj); $ ('# testTable'). DataTable(); У меня, однако, появилась следующая ошибка javascript: aaSorting - это нулевой объект или не объект любезное руководство, что теперь делать. –
на jsp, теперь я вызываю свой метод getTableData() внутри функции document.ready. Я думаю, что это эквивалентно вызову моего метода onload = getTableData() на html ... Так что все же получил тот же результат aaSorting имеет значение null или а не объект. –