具有多个数据源的kendo网格

时间:2013-07-18 11:08:45

标签: asp.net-mvc entity-framework database-design kendo-grid

我有3个单选按钮。我有3个不同的存储过程,可以调用3个不同的单选按钮。 例: 我有一个剑道网格。我希望结果显示在所有3个radiobutton选择的同一网格中。 FindCustomer_Result是我调用客户详细信息的存储过程。 现在,如果我选择第二个radiobutton,我想要显示资源存储过程详细信息。 请帮忙。

@(Html.Kendo().Grid<proj.Data.FindCustomer_Result>()
            .Name("CustomerSearch")
            .Columns(columns =>
            {
                columns.Bound(p => p.ID).Visible(false);
                columns.Bound(p => p.FirstName).Width(130);
                columns.Bound(p => p.LastName).Width(100);
                columns.Bound(p => p.Address1).Width(150);
            })
            .DataSource(dataSource => dataSource
                .Ajax()
          //call getcustomer to fetch details of customer
         .Read(read => read.Action("GetCustomer", "Customer")
                                .Data("functiontobind"))
                .ServerOperation(false)
            )
            .Sortable()
            .Scrollable()
            .Filterable()
            .RowAction(row => row.HtmlAttributes.Add("data-id", row.DataItem.ID))
            )

1 个答案:

答案 0 :(得分:1)

创建一个包含三个RadioButtons的ViewModel:

public class MyViewModel
{
    public int Id {get;set;}
    public bool Radio1 {get;set;}
    public bool Radio2 {get;set;}
    public bool Radio3 {get;set;}
}

然后填充Controller(Customer)中的ViewModel并指定Action(GetCustomer)

public class CustomerController : Controller
{
    .......
    public ActionResult GetCustomer([DataSourceRequest] DataSourceRequest gridRequest)
    {
        IList<MyViewModel> myViewModels = new List<MyViewModel>();
        //fill ViewModels here from stored Procedures
        return Json(myViewModels.ToDataSourceResult(gridRequest));
    }
    ........
}

然后按如下方式更改您的视图代码:

@(Html.Kendo().Grid<MyViewModel>()
        .Name("CustomerSearch")
        .Columns(columns =>
        {
            columns.Bound(p => p.ID).Visible(false);
            columns.Bound(p => p.Radio1).Width(130);
            columns.Bound(p => p.Radio2).Width(100);
            columns.Bound(p => p.Radio3).Width(150);
        })
        .DataSource(dataSource => dataSource
            .Ajax()
      //call getcustomer to fetch details of customer
     .Read(read => read.Action("GetCustomer", "Customer")
                            .Data("functiontobind"))
            .ServerOperation(false)
        )
        .Sortable()
        .Scrollable()
        .Filterable()
        .RowAction(row => row.HtmlAttributes.Add("data-id", row.DataItem.ID))
        )