我目前正在开发一个实现ComponentOne studio的Wijmo框架的项目,我已经构建了一个网格,该网格使用从模型传递的数据,该模型基本上为单个销售构建了一些虚拟数据。
然后我在我的Controller文件中调用public static IEnumerable,该文件传递要创建的数据条目数的值。这是传递给我的索引cshtml文件的视图,其中正在构建数据网格。
我试图弄清楚当我在JS文件中编写函数时如何调用已创建的数据。我希望能够获取由我的控制器中的int值(比如100个条目)生成的集合数据,然后创建我正在过滤的数据的视图。但是,我无法弄清楚如何传递初始数据,这样当我在其上运行过滤器时,我可以引用该数据来保存输出视图并运行辅助过滤器。
我基本上需要弄清楚JS中的引用不仅仅是模型,还有控制器中带有int值的模型。
这是模型文件:
using System;
using System.Collections.Generic;
using System.Linq;
namespace FilterPanel.Models
{
public class Sale
{
public int ID { get; set; }
public DateTime Start { get; set; }
public string Country { get; set; }
public string Product { get; set; }
public bool Active { get; set; }
private static List<string> COUNTRIES = new List<string> { "US", "UK", "Canada", "Japan", "China", "France", "German", "Italy", "Korea", "Australia" };
private static List<string> PRODUCTS = new List<string> { "Widget", "Gadget", "Doohickey" };
/// <summary>
/// Get the data.
/// </summary>
/// <param name="total"></param>
/// <returns></returns>
public static IEnumerable<Sale> GetData(int total)
{
var rand = new Random(0);
var dt = DateTime.Now;
var list = Enumerable.Range(0, total).Select(i =>
{
var country = COUNTRIES[rand.Next(0, COUNTRIES.Count - 1)];
var product = PRODUCTS[rand.Next(0, PRODUCTS.Count - 1)];
var startDate = new DateTime(dt.Year, i % 12 + 1, 25);
return new Sale
{
ID = i + 1,
Start = startDate,
Country = country,
Product = product,
Active = (i % 4 == 0)
};
});
return list;
}
}
}
然后我在控制器文件中引用此函数:
using FilterPanel.Models;
using System.Linq;
using System.Web.Mvc;
namespace FilterPanel.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View(Sale.GetData(100).ToList());
}
}
}
最后尝试使用&#34; data&#34;在我的JS文件中调用该数据。是我试图传递的Sale.GetData(100)的占位符
var view = new wijmo.collections.CollectionView(data);
// create a second CollectionView based on the first one
var view2 = new wijmo.collections.CollectionView(view.items, {
collectionChanged: function(s) {
var cnt = document.getElementById('cnt');
cnt.textContent = wijmo.format('{length:n0}', s.items)
}
});