首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASPNETZERO -数据问题

ASPNETZERO -数据问题
EN

Stack Overflow用户
提问于 2017-08-10 02:47:50
回答 3查看 2.5K关注 0票数 1

我已经将我的解决方案升级到了ASPNETZEROV4.x的最新版本。我有两个模板MVC5和.NET核心版本。我进行了升级,因为我非常喜欢使用DataTables插件,并且已经在我的ASPNETZERO解决方案的现有版本中实现了我所有的代码。看来ASPNETZERO已经实现了DataTables的“自定义”版本。因为现在我的工作数据从我的升级前是坏的。我已经将作为Metronic源代码中示例提供的可编辑数据代码复制到我的ASPNETZERO解决方案中,并且它工作得很好。现在,在V4.X升级之后,它已经破坏了这段代码。当我查看下载的解决方案中用于租户、角色和用户等页面的DataTables使用脚本时,我会看到一些选项正在应用于Datatables文档中不存在的Datatable初始化。例如,在listAction文档中找不到初始化属性“Datatables.net”。

代码语言:javascript
复制
        var dataTable = _$usersTable.DataTable({
        listAction: {
            ajaxFunction: _userService.getUsers,
            inputFilter: function () {
                return {
                    filter: $('#UsersTableFilter').val(),
                    permission: $("#PermissionSelectionCombo").val(),
                    role: $("#RoleSelectionCombo").val()
                };
            }
        },

以上所述使我相信这是ASPNETZERO团队的“自定义”数据版本。我没有看到任何关于如何使用这个“自定义”版本的文档,来自DataTables.net站点的文档与我在提供的解决方案中看到的代码不匹配。还有其他人遇到过这样的问题吗?有关于这个“自定义”数据实现的文档吗?

@Alper当我说硬编码时,我的意思是这样的:

代码语言:javascript
复制
        <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>

就像这样:

代码语言:javascript
复制
<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中工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-06 23:16:43

我可以确认,注释掉AspNetZero对DataTables的所有自定义更改将允许静态HTML正确呈现。随着更改的到位,Loading...屏幕被卡住了。

虽然我非常喜欢AspNetZero,但这是我第二次发现对库的自定义更改,它破坏了库的默认行为,导致了数小时和几个小时的故障排除(另一项更改是对jquery.validation进行更改,其中默认.Validate()被覆盖,因此不再在表单提交上进行验证)。

我不介意这些更改--如果它们是文档化的,则为

具体来说:datatable.ajax.js打破了可数据的默认行为。指定了一个ajax函数,从而阻止默认的静态行为。若要在代码中修复而不必删除AspNetZero默认文件.做以下工作:

代码语言:javascript
复制
$('#example').dataTable( {
  ajax: null
});
票数 6
EN

Stack Overflow用户

发布于 2017-08-10 06:04:12

该项目中使用的数据表版本为1.10.12。这不是一个完全定制的版本,但新的功能已经添加,而没有打破现有的功能。您可以忽略自定义函数,使用基于1.10.12版本的所有内容。

它是包含在文件名datatables.all.min.js中的所有插件的组合版本。此文件由Metronic团队创建。Aspnet团队使用该文件与Metronic主题进行了完全兼容的集成。

您可以在datatables.all.min.js中看到包含的库;

  • JSZip 2.5.0
  • pdfmake 0.1.18
  • DataTables 1.10.12
  • 按钮1.2.1
  • 列能见度1.2.1
  • 闪光出口1.2.1
  • HTML5出口1.2.1
  • 打印视图1.2.1
  • ColReorder 1.3.2
  • FixedColumns 3.2.2
  • FixedHeader 3.1.2
  • 响应2.1.0
  • RowReorder 1.1.2
  • 滚轮1.4.2
  • 选择1.2.0

Aspnet零团队自定义是;

在以下文件中覆盖默认值:

代码语言:javascript
复制
\wwwroot\Common\Scripts\Datatables\datatables.defaults.js

添加了"listAction“函数来制作从WebApi服务获取数据的适配器。您可以检查datatables.ajax.js文件以查看事情是如何完成的。

代码语言:javascript
复制
\wwwroot\Common\Scripts\Datatables\datatables.ajax.js

添加"rowAction“以创建动作按钮。您可以检查datatables.record-actions.js文件,查看事情是如何完成的。

代码语言:javascript
复制
\wwwroot\Common\Scripts\Datatables\datatables.record-actions.js

插件位于这里:

代码语言:javascript
复制
wwwroot/metronic/assets/global/plugins/datatables/datatables.all.min.js

所有翻译文件都位于这里:

代码语言:javascript
复制
wwwroot\Common\Scripts\Datatables\Translations\

本地化(基于用户文化)在这里完成:

代码语言:javascript
复制
\wwwroot\Common\Scripts\Datatables\datatables.defaults.js
票数 4
EN

Stack Overflow用户

发布于 2017-10-09 08:21:33

在Datatable脚本上使ajax请求为空。

代码语言:javascript
复制
 $('#LeaveTable').dataTable( {
  ajax: null
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45603621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档