【问题标题】:How to create a kendoui grid programmatically如何以编程方式创建 kendoui 网格
【发布时间】:2013-08-29 09:49:39
【问题描述】:

假设我的 cshtml 中有以下网格

@(Html.Kendo().Grid<Accessibility.Models.CompanyModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(c => c.Name);
        columns.Bound(c => c.Description);
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Sortable()
    .Scrollable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model => model.Id(p => p.Id))
        .Create(update => update.Action("Company", "Company"))
        .Read(read => read.Action("GetCompanies", "Company"))
        .Update(update => update.Action("Company", "Company"))
        .Destroy(update => update.Action("DestroyCompany", "Company"))
    )
)

如何以编程方式创建上述网格,而不是在我的 cshtml 文件中对其进行硬编码?

【问题讨论】:

  • 你为什么要这样做?
  • 因为我需要根据用户的输入创建 x 个网格
  • 在这种情况下,网格的模型结构(即列数、事件等)是否会因每个网格而改变,或者网格是否只是重复了具有相同模型约束的不同数据?我的意思是,是否无法使用网格标记创建局部视图,然后根据您所需的逻辑从控制器渲染局部视图?
  • 列不变,但数据不变。即,根据我的阅读操作,GetCompanies 可能需要接受一个参数

标签: jquery asp.net-mvc dynamic grid kendo-ui


【解决方案1】:

根据您的 cmets,我建议创建一个包含网格标记的局部视图,然后在控制器中根据用户的输入对模型进行水合,然后返回局部视图和模型。例如,

public ActionResult GetCompanies(int companyId)
{
    CompanyModel model = GetCompanies(companyId);

    return PartialView("_CompaniesGrid", model);
}

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多