从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.