datatables 不显示带table的分页
Datatables does not display pagination with table
我想将表格分页与搜索功能结合使用。然后我从数据表中听到并尝试像这样包含它:
<!DOCTYPE html>
{% extends "base" %}
{% block head %}
{% load staticfiles %}
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/media/js/jquery.js" %}"></script>
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/examples/resources/syntax/shCore.js" %}"></script>
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/examples/resources/demo.js" %}"></script>
{% endblock %}
{% block body %}
<table class="table table-hover" id="ctable">
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
{% for ct in completedtask.all %}
{% csrf_token %}
<tr>
<td>{{ ct.date }}</td>
<td>{{ ct.task }}</td>
<td>{{ ct.duration|default:" " }}</td>
<td>{{ ct.education_department|default:" " }}</td>
<td>{{ ct.year_of_training }}</td>
{% if ct.learning_objective.all %}
<td>
{% for lObj in ct.learning_objective.all %}
{{ lObj }},
{% endfor %}
</td>
{% else %}
<td> </td>
{% endif %}
<td><a href="{% url 'completed_task_update' pk=ct.pk %}" class="glyphicon glyphicon-edit"></a></td>
<td><a href="{% url 'completed_task_delete' pk=ct.pk %}" class="glyphicon glyphicon-remove"></a></td>
</tr>
{% endfor %}
</table>
<script type="text/javascript">
$(document).ready(function() {
$('#ctable').dataTable( {
"pagingType": "full_numbers"
} );
} );
</script>
{% endblock %}
显然这不起作用,我收到以下错误:
TypeError: $(...).dataTable is not a function
最终渲染 HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/examples/resources/demo.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/static/report/js/report.js"></script>
<link rel="stylesheet" type="text/css" href="/static/report/css/bootstrap-3.3.4-dist/css/bootstrap.min.css"/>
<script type="text/javascript" src="/static/report/css/bootstrap-3.3.4-dist/js/bootstrap.min.js"></script>
</head>
<body>
<ol class="breadcrumb">
<li><a href="/">Startseite</a>
<li><a href="/todo/">To do Liste</a></li>
<li><a href="/completed_task/">Ausgeführte Tätigkeiten</a></li>
<li><a href="/report">Berichtsheft</a></li>
<li><a href="/topic/">Themen</a></li>
<li><a href="/learning_objective/">Lernziele</a></li>
<li><a href="/logout" method="post">Logout</a><input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' /></li>
<li><a href="http://www.comp-pro.de/" style="text-decoration:none;">
<img src="/static/report/img/photo.png"></img>
</a></li>
</ol>
<h4>Guten Tag, Ibrahim!</h4>
<center>
<button onclick="toggle_element( 'show' );" class="glyphicon glyphicon-plus"></button>
<button onclick="toggle_element( 'hide' );" class="glyphicon glyphicon-minus"></button>
</center>
<form class="form-horizontal" style="display:none;" method="POST" action="."> <input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<p>Es wird empfohlen die Rechtschreibprüfung im Browser zu aktivieren für das schreiben des Berichts.</p>
<p>Anleitungen für
<a href="https://support.mozilla.org/de/kb/Rechtschreibpruefung-nutzen">Firefox</a> und
<a href="https://support.google.com/chrome/answer/95604?hl=de">Google Chrome</a></p>
<fieldset>
<div class="control-group">
<label class="control-label">Ausgeführte Tätigkeit</label>
<div class="controls"><textarea cols="40" id="id_task" name="task" rows="10">
</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">Dauer</label>
<div class="controls"><input id="id_duration" name="duration" type="number" />
</div>
</div>
<div class="control-group">
<label class="control-label">Datum</label>
<div class="controls"><input id="id_date" name="date" type="text" />
</div>
</div>
<div class="control-group">
<label class="control-label">Ausbildungsjahr</label>
<div class="controls"><input id="id_year_of_training" name="year_of_training" type="number" />
</div>
</div>
<div class="control-group">
<label class="control-label">Abteilung</label>
<div class="controls"><input id="id_education_department" maxlength="32" name="education_department" type="text" />
</div>
</div>
<div class="control-group">
<label class="control-label">Lernziel</label>
<div class="controls"><select multiple="multiple" id="id_learning_objective" name="learning_objective">
<option value="19">Bar</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions" style="margin-top: 4px;">
<button type="submit" class="btn btn-success">Senden</button>
</div>
</form>
<br>
<form class="form-horizontal" style="display:none;"action="/preview" method="post"> <input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<label class="control-lable">Datum</label>
<div class="controls">
<input type="text" name="date" style="width:10%;" id="date"></br>
</div>
<input type="submit" target="_blank" value="Vorschau" class="btn btn-default"/>
</form>
<table class="table table-hover" id="ctable">
<thead>
<tr>
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<tr>
<td>10.02.2015</td>
<td>Foo</td>
<td>2</td>
<td>Baz</td>
<td>2</td>
<td>
Bar,
</td>
<td><a href="/completed_task/update/37/" class="glyphicon glyphicon-edit"></a></td>
<td><a href="/completed_task/delete/37/" class="glyphicon glyphicon-remove"></a></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function() {
$('#ctable').dataTable( {
"pagingType": "full_numbers"
} );
} );
</script>
</body>
</html>
你知道如何解决这个问题吗?
您没有在 {% block head %}
部分正确加载 DataTables 库。要在您的页面上包含数据表,请在该块中或结束 </head>
标记之前包含以下 HTML 代码:
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<!-- DataTables -->
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
您的 table 也需要定义如下,请参阅 documentation 了解更多信息。
<table class="table table-hover" id="ctable">
<thead>
<tr>
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<!-- table contents goes here -->
</tbody>
</table>
我想将表格分页与搜索功能结合使用。然后我从数据表中听到并尝试像这样包含它:
<!DOCTYPE html>
{% extends "base" %}
{% block head %}
{% load staticfiles %}
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/media/js/jquery.js" %}"></script>
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/examples/resources/syntax/shCore.js" %}"></script>
<script type="text/javascript" language="javascript" src="{% static "report/js/DataTables-1.10.5/examples/resources/demo.js" %}"></script>
{% endblock %}
{% block body %}
<table class="table table-hover" id="ctable">
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
{% for ct in completedtask.all %}
{% csrf_token %}
<tr>
<td>{{ ct.date }}</td>
<td>{{ ct.task }}</td>
<td>{{ ct.duration|default:" " }}</td>
<td>{{ ct.education_department|default:" " }}</td>
<td>{{ ct.year_of_training }}</td>
{% if ct.learning_objective.all %}
<td>
{% for lObj in ct.learning_objective.all %}
{{ lObj }},
{% endfor %}
</td>
{% else %}
<td> </td>
{% endif %}
<td><a href="{% url 'completed_task_update' pk=ct.pk %}" class="glyphicon glyphicon-edit"></a></td>
<td><a href="{% url 'completed_task_delete' pk=ct.pk %}" class="glyphicon glyphicon-remove"></a></td>
</tr>
{% endfor %}
</table>
<script type="text/javascript">
$(document).ready(function() {
$('#ctable').dataTable( {
"pagingType": "full_numbers"
} );
} );
</script>
{% endblock %}
显然这不起作用,我收到以下错误:
TypeError: $(...).dataTable is not a function
最终渲染 HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/examples/resources/syntax/shCore.js"></script>
<script type="text/javascript" language="javascript" src="/static/report/js/DataTables-1.10.5/examples/resources/demo.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/static/report/js/report.js"></script>
<link rel="stylesheet" type="text/css" href="/static/report/css/bootstrap-3.3.4-dist/css/bootstrap.min.css"/>
<script type="text/javascript" src="/static/report/css/bootstrap-3.3.4-dist/js/bootstrap.min.js"></script>
</head>
<body>
<ol class="breadcrumb">
<li><a href="/">Startseite</a>
<li><a href="/todo/">To do Liste</a></li>
<li><a href="/completed_task/">Ausgeführte Tätigkeiten</a></li>
<li><a href="/report">Berichtsheft</a></li>
<li><a href="/topic/">Themen</a></li>
<li><a href="/learning_objective/">Lernziele</a></li>
<li><a href="/logout" method="post">Logout</a><input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' /></li>
<li><a href="http://www.comp-pro.de/" style="text-decoration:none;">
<img src="/static/report/img/photo.png"></img>
</a></li>
</ol>
<h4>Guten Tag, Ibrahim!</h4>
<center>
<button onclick="toggle_element( 'show' );" class="glyphicon glyphicon-plus"></button>
<button onclick="toggle_element( 'hide' );" class="glyphicon glyphicon-minus"></button>
</center>
<form class="form-horizontal" style="display:none;" method="POST" action="."> <input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<p>Es wird empfohlen die Rechtschreibprüfung im Browser zu aktivieren für das schreiben des Berichts.</p>
<p>Anleitungen für
<a href="https://support.mozilla.org/de/kb/Rechtschreibpruefung-nutzen">Firefox</a> und
<a href="https://support.google.com/chrome/answer/95604?hl=de">Google Chrome</a></p>
<fieldset>
<div class="control-group">
<label class="control-label">Ausgeführte Tätigkeit</label>
<div class="controls"><textarea cols="40" id="id_task" name="task" rows="10">
</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">Dauer</label>
<div class="controls"><input id="id_duration" name="duration" type="number" />
</div>
</div>
<div class="control-group">
<label class="control-label">Datum</label>
<div class="controls"><input id="id_date" name="date" type="text" />
</div>
</div>
<div class="control-group">
<label class="control-label">Ausbildungsjahr</label>
<div class="controls"><input id="id_year_of_training" name="year_of_training" type="number" />
</div>
</div>
<div class="control-group">
<label class="control-label">Abteilung</label>
<div class="controls"><input id="id_education_department" maxlength="32" name="education_department" type="text" />
</div>
</div>
<div class="control-group">
<label class="control-label">Lernziel</label>
<div class="controls"><select multiple="multiple" id="id_learning_objective" name="learning_objective">
<option value="19">Bar</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions" style="margin-top: 4px;">
<button type="submit" class="btn btn-success">Senden</button>
</div>
</form>
<br>
<form class="form-horizontal" style="display:none;"action="/preview" method="post"> <input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<label class="control-lable">Datum</label>
<div class="controls">
<input type="text" name="date" style="width:10%;" id="date"></br>
</div>
<input type="submit" target="_blank" value="Vorschau" class="btn btn-default"/>
</form>
<table class="table table-hover" id="ctable">
<thead>
<tr>
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<input type='hidden' name='csrfmiddlewaretoken' value='9CfMZiQdvvVsVlccKRmSd7I2wl9M8xBr' />
<tr>
<td>10.02.2015</td>
<td>Foo</td>
<td>2</td>
<td>Baz</td>
<td>2</td>
<td>
Bar,
</td>
<td><a href="/completed_task/update/37/" class="glyphicon glyphicon-edit"></a></td>
<td><a href="/completed_task/delete/37/" class="glyphicon glyphicon-remove"></a></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function() {
$('#ctable').dataTable( {
"pagingType": "full_numbers"
} );
} );
</script>
</body>
</html>
你知道如何解决这个问题吗?
您没有在 {% block head %}
部分正确加载 DataTables 库。要在您的页面上包含数据表,请在该块中或结束 </head>
标记之前包含以下 HTML 代码:
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<!-- DataTables -->
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
您的 table 也需要定义如下,请参阅 documentation 了解更多信息。
<table class="table table-hover" id="ctable">
<thead>
<tr>
<th>Datum</th>
<th>Aufgabe</th>
<th>Dauer</th>
<th>Abteilung</th>
<th>Jahr</th>
<th>Lernziel</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<!-- table contents goes here -->
</tbody>
</table>