我已经将我的解决方案升级到了ASPNETZEROV4.x的最新版本。我有两个模板MVC5和.NET核心版本。我进行了升级,因为我非常喜欢使用DataTables插件,并且已经在我的ASPNETZERO解决方案的现有版本中实现了我所有的代码。看来ASPNETZERO已经实现了DataTables的“自定义”版本。因为现在我的工作数据从我的升级前是坏的。我已经将作为Metronic源代码中示例提供的可编辑数据代码复制到我的ASPNETZERO解决方案中,并且它工作得很好。现在,在V4.X升级之后,它已经破坏了这段代码。当我查看下载的解决方案中用于租户、角色和用户等页面的DataTables使用脚本时,我会看到一些选项正在应用于Datatables文档中不存在的Datatable初始化。例如,在listAction文档中找不到初始化属性“Datatables.net”。
var dataTable = _$usersTable.DataTable({
listAction: {
ajaxFunction: _userService.getUsers,
inputFilter: function () {
return {
filter: $('#UsersTableFilter').val(),
permission: $("#PermissionSelectionCombo").val(),
role: $("#RoleSelectionCombo").val()
};
}
},以上所述使我相信这是ASPNETZERO团队的“自定义”数据版本。我没有看到任何关于如何使用这个“自定义”版本的文档,来自DataTables.net站点的文档与我在提供的解决方案中看到的代码不匹配。还有其他人遇到过这样的问题吗?有关于这个“自定义”数据实现的文档吗?
@Alper当我说硬编码时,我的意思是这样的:
<table class="table table-bordered table-striped table-hover" id="tblRel">
<thead>
<tr>
<td>Version</td>
<td>Publish Date MST</td>
<td>Publish Date <b>GMT</b></td>
<td>Release notes</td>
</tr>
</thead>
<tbody>
<tr class="danger">
<td>1.0.0.5</td>
<td></td>
<td></td>
<td>
<ul>
<li>Updated tooltip for resident funding icon on resident index page.</li>
<li>Contacts - Added additional column for contact name and emergency contact flag</li>
<li>HR - Jobcode - Band level is no longer a required field</li>
</ul>
</td>
</tr>
<tr>
</tbody>
</table>就像这样:
<table class="table table-striped table-hover table-bordered" id="Contacts">
<thead>
<tr>
<th>@L("ContactName")</th>
<th>@L("ContactType")</th>
<th>@L("ContactCategory")</th>
<th>@L("Email")</th>
<th>@L("Phone")</th>
<th>@L("DefaultYN")</th>
<th>@L("EmergencyYN")</th>
<th>@L("Edit")</th>
</tr>
</thead>
<tbody>
@if (Model.Company.Contacts.Count != 0)
{
foreach (var ctc in Model.Company.Contacts)
{
<tr>
<td>@(ctc.Contact.ContactName)</td>
<td>@(ctc.Contact.TypeName)</td>
<td>@(ctc.Contact.CategoryName)</td>
<td>@(ctc.Contact.Email)</td>
<td>@(ctc.Contact.Phone)</td>
@if (ctc.Contact.DefaultYN)
{
<td>@L("Yes")</td>
}
else
{
<td>@L("No")</td>
}
@if (ctc.Contact.EmergencyContactYN)
{
<td>@L("Yes")</td>
}
else
{
<td>@L("No")</td>
}
<td>
<a class="edit btn btn-xs btn-primary" href="javascript:;">@L("Edit") </a>
</td>
</tr>
}
}
</tbody>
</table>在上述两个示例中,数据表数据不是由Datatables代码获取的。我在这些表上使用的简单初始化不再在V4.X中工作。
发布于 2017-10-06 23:16:43
我可以确认,注释掉AspNetZero对DataTables的所有自定义更改将允许静态HTML正确呈现。随着更改的到位,Loading...屏幕被卡住了。
虽然我非常喜欢AspNetZero,但这是我第二次发现对库的自定义更改,它破坏了库的默认行为,导致了数小时和几个小时的故障排除(另一项更改是对jquery.validation进行更改,其中默认.Validate()被覆盖,因此不再在表单提交上进行验证)。
我不介意这些更改--如果它们是文档化的,则为。
具体来说:datatable.ajax.js打破了可数据的默认行为。指定了一个ajax函数,从而阻止默认的静态行为。若要在代码中修复而不必删除AspNetZero默认文件.做以下工作:
$('#example').dataTable( {
ajax: null
});发布于 2017-08-10 06:04:12
该项目中使用的数据表版本为1.10.12。这不是一个完全定制的版本,但新的功能已经添加,而没有打破现有的功能。您可以忽略自定义函数,使用基于1.10.12版本的所有内容。
它是包含在文件名datatables.all.min.js中的所有插件的组合版本。此文件由Metronic团队创建。Aspnet团队使用该文件与Metronic主题进行了完全兼容的集成。
您可以在datatables.all.min.js中看到包含的库;
Aspnet零团队自定义是;
在以下文件中覆盖默认值:
\wwwroot\Common\Scripts\Datatables\datatables.defaults.js添加了"listAction“函数来制作从WebApi服务获取数据的适配器。您可以检查datatables.ajax.js文件以查看事情是如何完成的。
\wwwroot\Common\Scripts\Datatables\datatables.ajax.js添加"rowAction“以创建动作按钮。您可以检查datatables.record-actions.js文件,查看事情是如何完成的。
\wwwroot\Common\Scripts\Datatables\datatables.record-actions.js插件位于这里:
wwwroot/metronic/assets/global/plugins/datatables/datatables.all.min.js所有翻译文件都位于这里:
wwwroot\Common\Scripts\Datatables\Translations\本地化(基于用户文化)在这里完成:
\wwwroot\Common\Scripts\Datatables\datatables.defaults.js发布于 2017-10-09 08:21:33
在Datatable脚本上使ajax请求为空。
$('#LeaveTable').dataTable( {
ajax: null
});https://stackoverflow.com/questions/45603621
复制相似问题