Awesome ASP.net Core and MVC Controls

Grid using array data source

In this demo you can see how an array data source can be used to provide data for the awesome grid control.

GridArrayDataSource/Index.cshtml
@Html.Awe().Grid("GridArrayData").Url(Url.Action("GridGetItems"))

<script>
function getVal(i) {
return function (model) {
return model.Values[i];
};
}
</script>
Demos/Grid/GridArrayDataSourceController.cs
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;

using AwesomeMvcDemo.ViewModels;

using Omu.AwesomeMvc;

namespace AwesomeMvcDemo.Controllers.Demos.Grid
{
public class GridArrayDataSourceController : Controller
{
public ActionResult Index()
{
return View();
}

public ActionResult GridGetItems(GridParams g)
{
var data = new[]
{
new[] { "Id", "Name", "Meal" },
new[] { "1", "Vincenzo", "Pizza" },
new[] { "2", "Ella", "French toast" },
new[] { "3", "Zazzles", "Pizza" },
new[] { "4", "Evan", "Banana" }
};

var columns = new List<Column>();
columns.Add(new Column { Header = "Id", ClientFormat = ".Id", Width = 100});

for (var i = 1; i < data[0].Length; i++)
{
columns.Add(new Column{ Header = data[0][i], ClientFormatFunc = "getVal("+i+")" });
}

var items = new List<GridArrayRow>();
for (var i = 1; i < data.Length; i++)
{
items.Add(new GridArrayRow{ Id = data[i][0], Values = data[i]});
}

g.Columns = columns.ToArray();

var model = new GridModelBuilder<GridArrayRow>(items.AsQueryable(), g).Build();
return Json(model);
}
}
}
ViewModels/GridArrayRow.cs
namespace AwesomeMvcDemo.ViewModels
{
public class GridArrayRow
{
public string Id { get; set; }

public string[] Values { get; set; }
}
}



Comments

We use cookies to improve your online experience. By accessing this site, you agree to the use of cookies and other technologies to process your personal data (e.g. IP address) to enhance and personalise your experience across our websites. Additionally, third-party companies, may store cookies on your device and use similar technologies to collect and use certain information. For more information, refer to our privacy policy and cookie policy.