我正在做一个项目。由于项目支持多语言,我希望datatable
根据dropdownlist
中的值进行更改。
我写了一段JavaScript代码,但是这段代码可以立即工作,并且之后不会显示数据表。
ASP代码
<asp:DropDownList ID="ddlLang" runat="server" CssClass="selectpicker w-auto form-control-sm" AutoPostBack="true" OnSelectedIndexChanged="ddLang_SelectedIndexChanged">
<asp:ListItem Value="tr" data-icon="flag-icon flag-icon-tr mr-2" Text="<%$Resources:Resources, LangTR %>"> </asp:ListItem>
<asp:ListItem Value="en" data-icon="flag-icon flag-icon-gb mr-2" Text="<%$Resources:Resources, LangEN %>"> English </asp:ListItem>
</asp:DropDownList>
JavaScript代码
<script type="text/javascript">
$(function () {
$('#ddlLang').on('change value', function () {
var ddlvalue = $(this).val();
if (ddlvalue == 'tr') {
$('#regIn').DataTable({
"paging": true,
"lengthChange": true,
"searching": false,
"ordering": true,
"info": true,
"autoWidth": false,
"responsive": true,
"language": {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Turkish.json"
}
});
}
else if (ddlvalue == 'en') {
$('#regIn').DataTable({
"paging": true,
"lengthChange": true,
"searching": false,
"ordering": true,
"info": true,
"autoWidth": false,
"responsive": true,
"language": {
"url": "//cdn.datatables.net/plug-ins/1.13.4/i18n/en-GB.json"
}
});
}
});
});
1条答案
按热度按时间30byixjq1#
你的代码有一些问题。首先,在再次初始化同一个表上的DataTable之前,需要销毁DataTable。此外,您还可以减少初始化的冗余。唯一明显的区别是
language.url
路径,因此您可以在初始化中使用一个变量,并在下拉列表更改时设置该变量。一个工作示例是here
HTML
JS