如何将参数数组传递给Kendo Grid数据源?

时间:2018-07-13 09:52:11

标签: javascript c# asp.net-mvc kendo-ui

我想将数据数组传递给Kendo Grid数据源。该数组将是将特定汽车返回网格的ID的选择,我不确定该怎么做。

通常,您可以通过直接内联声明或(通过我喜欢的方式)利用.Data并指定javascript函数将单个参数传递给网格。

.Read(read => read.Action("GetCars", "Grid").Data("myParams"))

然后,您将编写一个函数以返回数据,在这种情况下为单个ID,再加上从记录中获取的其他任何内容。

function myParams() {
    return {
        name: "Holden",
        id: 1
    }
}

然后我们调整控制器方法以使用该参数。

public ActionResult GetCars([DataSourceRequest] DataSourceRequest request, int Id)
{
    var car = unitOfWork.CarRepository.Get()Where(x => x.Id == Id);
    var result = car.ToDataSourceResult(request);
    return Json(result, JsonRequestBehavior.AllowGet);
}

对于传递单个ID来说,这一切都很好,但是我需要传递它们的数组。我走了一条我认为会实现这一目标的道路,但是老实说,我并不完全相信。我在javascript中做了一个非常粗糙的初始方法,例如:

var cars = ["1", "2", "3"];

function myParams() {
    return {
        car: cars
    }
}

然后我调整了控制器以接受如下数组:

public ActionResult GetTabVessels(string[] car, [DataSourceRequest] DataSourceRequest request)
{
    // Not sure how to handle it at this stage :(

    foreach (var item in car) {
        Console.WriteLine(item);
    }
    //Need to adjust this to accept the array.  Any ideas?
    var car = unitOfWork.CarRepository.Get()Where(x => x.Id == Id);
    var result = car.ToDataSourceResult(request);
    return Json(result, JsonRequestBehavior.AllowGet);
}

在此之后,我意识到我可能需要一些指导。那么,如何将参数数组(以我的情况为ID)传递给Kendo Grid数据源?

非常感谢

1 个答案:

答案 0 :(得分:1)

如评论中所述,这是一个未经测试的示例,该示例如何将数组返回给Kendo:

public ActionResult GetTabVessels(string[] car, [DataSourceRequest] DataSourceRequest request)
{
    //ToList() is a Linq Extension
    return Json(car.ToList().ToDataSourceResult(request));
}