首页 文章

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

提问于
浏览
0

我想将一组数据传递给Kendo Grid Datasource . 该阵列将选择将特定车辆返回到网格的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 回答

  • 1

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

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

相关问题