【问题标题】:Set unique editor template for same attribute but different view model为相同的属性但不同的视图模型设置唯一的编辑器模板
【发布时间】:2014-04-16 14:20:15
【问题描述】:

我有一个使用剑道水龙头条的应用程序,所以所有字段在所有打开的选项卡中都应该有唯一的名称,我唯一遇到的问题是如何为具有唯一名称的相同属性名称创建多个外键编辑器模板对于多个网格,因为组合框应该与视图模型属性名称具有相同的名称,如果我创建多个具有相同名称的组合框编辑器模板,它将在系统中返回冲突,所以有没有解决方法我可以在这里使用吗?

简单来说 假设我有两个网格(销售订单和采购订单),两个网格都有名为“Supplier”的外键列 - 在两个表 SupplierID- 中调用的外键,我为每个网格创建两个编辑器模板 这里作为我的模板(两个模板相同)

@model object
@using MyResource =Resources.Layout;
@( Html.Kendo().ComboBox()
                  .DataTextField("SupplierID")

                      .DataValueField("SupplierID").Name("SupplierID")
                      .Placeholder(MyResource.SelectSupplier)
      .Filter("contains").DataSource(source =>
                      {source.Read(read =>
                          { read.Action("GetSuppliers", "Item");
                          }).ServerFiltering(true);
                      }).AutoBind(false))

因此,如果我同时打开两个网格,则会出现错误,因为两个网格都有同名的外键组合框 (SupplierID)

【问题讨论】:

  • 很难理解您要做什么 - 考虑添加一些代码来说明您的问题
  • 我添加更多描述和代码

标签: asp.net-mvc-4 kendo-ui kendo-grid


【解决方案1】:
【解决方案2】:

我的问题通过使用 ViewData 将网格名称传递给编辑器模板并将组合框的 ID 属性设置为网格名称 + 属性名称来解决

 Html.Kendo().ComboBox().DataTextField("SupplierID")
        .DataValueField("SupplierID")
        .Name("SupplierID")
    .Filter("contains")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetSuppliers", "Item");
        })
        .ServerFiltering(true);
    })

     .HtmlAttributes(new Dictionary<string, object> {

            { "id" , ViewData["GridName"] + "_Supplier" }
        })

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多