Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从gridmvc获取所有数据,包括javascript中的所有分页?_Javascript_Asp.net Core Mvc_Grid_Mvcgrid.net - Fatal编程技术网

从gridmvc获取所有数据,包括javascript中的所有分页?

从gridmvc获取所有数据,包括javascript中的所有分页?,javascript,asp.net-core-mvc,grid,mvcgrid.net,Javascript,Asp.net Core Mvc,Grid,Mvcgrid.net,我正在尝试从gridmvc获取数据,并使用chart.js显示图形,但问题是它只显示页面。因为我已经在网格中启用了分页功能,当我单击下一页时,下一个网格数据页图形就会显示出来,但我想显示包含所有页面的完整网格数据的图形 <div class="panel-body"> @await Html.Grid(Model).Columns(columns => { columns.Add(c

我正在尝试从
gridmvc
获取数据,并使用
chart.js
显示图形,但问题是它只显示页面。因为我已经在网格中启用了分页功能,当我单击下一页时,下一个网格数据页图形就会显示出来,但我想显示包含所有页面的完整网格数据的图形

     <div class="panel-body">

            @await Html.Grid(Model).Columns(columns =>

       {

           columns.Add(c => c.ID).Titled("StudentID").Filterable(true);

           columns.Add(c => c.Name).Titled("Name").Filterable(true);

           columns.Add(c => c.Major).Titled("Major").Filterable(true);

           columns.Add(c => c.Minor).Titled("Minor").Filterable(true);
           columns.Add(c => c.Email).Titled("Email").Filterable(true);

           columns.Add(c => c.Address).Titled("Address").Filterable(true);
           columns.Add(c => c.GPA).Titled("GPA").Filterable(true);


       }).Searchable(true, false, true).WithPaging(10).ChangePageSize(true).Sortable(true).EmptyText("No data found").Named("GridSearch").RenderAsync()

        </div>
我想在
gridmvc
中显示包含完整数据的图形,而不仅仅是在当前页面上

但问题是,它只显示页面。因为我启用了 在网格中分页,单击下一页,然后单击下一个网格数据页 图形显示,但我想显示完整的网格数据包含的图形 所有页面

     <div class="panel-body">

            @await Html.Grid(Model).Columns(columns =>

       {

           columns.Add(c => c.ID).Titled("StudentID").Filterable(true);

           columns.Add(c => c.Name).Titled("Name").Filterable(true);

           columns.Add(c => c.Major).Titled("Major").Filterable(true);

           columns.Add(c => c.Minor).Titled("Minor").Filterable(true);
           columns.Add(c => c.Email).Titled("Email").Filterable(true);

           columns.Add(c => c.Address).Titled("Address").Filterable(true);
           columns.Add(c => c.GPA).Titled("GPA").Filterable(true);


       }).Searchable(true, false, true).WithPaging(10).ChangePageSize(true).Sortable(true).EmptyText("No data found").Named("GridSearch").RenderAsync()

        </div>
这个问题与上面的脚本有关,因为您实现了分页,当使用上面的代码获取表资源时,它只获取当前页面记录,然后显示页面抓图

为了解决这个问题,您可以从页面模型(model)中获取记录,或者创建一个action方法来获取所有记录,然后使用jqueryajax方法调用这个方法并获取网格数据

要从页面模型中获取记录,在Asp.net核心MVC应用程序中,可以先使用
Json.Serialize()
方法将模型转换为Json字符串,然后使用
Json.parse()
方法将Json字符串转换为JavaScript对象,然后循环对象并获取所有数据

类似这样的代码(Index.cshtml)

@型号列表
@节脚本{
$(函数(){
负荷图();
});
函数负载图(){
调试器;
//var chartType=parseInt($(“#rblChartType输入:选中”).val();
//var items=$(“.grid mvc”).find(“.grid table>tbody”).children();
var json=[];
var items=JSON.parse('@JSON.Serialize(Model)');
$。每个(项目、功能(索引、项目){
push({'StudentID':item.id,'Name':item.Name,'Major':item.Major,'Major':item.Major,'Email':item.Email,'Address':item.Address,'GPA':item.GPA});
});
//显示基于json数组的图形。
屏幕截图如下:


感谢您的响应并提供了解决方案,它工作良好,并且加载了所有内容,但问题是当我在
gridmvc上应用筛选器时,它根据筛选器显示的记录很少,但图形显示了所有内容,我想显示图形也根据应用筛选器显示。我认为我们需要从表中获取完整的数据,因为表数据c根据搜索和筛选挂起,如果我们使用
模型
它会显示所有记录,但不会根据筛选和搜索挂起。希望你明白,我明白。为了解决这个问题,在从模型中获取所有数据后,我建议你也可以使用根据搜索和筛选过滤数据,你可以参考以下链接:.Af然后,根据过滤后的数据显示图形。但是我正在使用自动显示过滤器的
gridmvc
filter,如何将
gridmvc
filter应用于json数据?尝试使用检查gridmvc文档,是否有一些方法获取过滤器参数。或者您可以尝试使用JQuery获取过滤器值,然后使用它来过滤json数据。
   var items = $(".grid-mvc").find(".grid-table > tbody").children();
              var json = [];
              $.each(items, function (i, row) {

                  $col1=$(row).children()[0].innerText;
                  $col2 = $(row).children()[1].innerText;

                  $col3 =$(row).children()[2].innerText;

                  $col4 =$(row).children()[3].innerText;
                  $col5 =$(row).children()[4].innerText;

                  $col6 =$(row).children()[5].innerText;
                  $col7 =$(row).children()[6].innerText;

                  json.push({ 'StudentID': $col1, 'Name': $col2, 'Major': $col3, 'Minor': $col4, 'Email': $col5, 'Address': $col6, 'GPA': $col7      
              })     
@model List<StudentViewModel>
@section Scripts{
    <script>
        $(function () {
            LoadChart();
        });

        function LoadChart() {
            debugger;
            //var chartType = parseInt($("#rblChartType input:checked").val());
            //var items = $(".grid-mvc").find(".grid-table > tbody").children();
            var json = [];
            var items = JSON.parse('@Json.Serialize(Model)');
            $.each(items, function (index, item) {
                json.push({ 'StudentID': item.id, 'Name': item.name, 'Major': item.major, 'Major': item.major, 'Email': item.email, 'Address': item.address, 'GPA': item.gpa });
            });

            //show graphs based on the json array.