Как получить строки детальной сетки / вспомогательной сетки для проверки? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть основная сетка под названием «Зоны», и у каждой зоны есть ZoneSubscription для каждого идентификатора зоны

Я хочу проверить строки в подсетке.Основная сетка имеет название «Зоны».Подсетка имеет имя «grid _ # = Id #»

В существующей функции проверки мы проверяем уникальные значения в сетке

Как мне получить строки для сетки с именем "grid_# = Id # "?

function checkStringValue(gridName, inputName, value) {
    // Check to see if the given value already exists in the grid
    var rows = $("#" + gridName).data("kendoGrid").dataSource.data();
    var rowsWithSameValue = rows.filter(x => x[inputName].trim().toLowerCase() === value.toLowerCase());
    var isUniqueValue = rowsWithSameValue.length < 2;
    return isUniqueValue;
}

Основная сетка:

@(Html.Kendo().Grid<ZoneGridItem>()
      .Name("Zones")
      .Columns(c =>
      {
          c.Bound(b => b.Name).Title("Zone");
          c.Command(command => { command.Edit(); command.Destroy(); }).Width(220);
      })
      .Editable(GridEditMode.InLine)
      .ToolBar(toolbar => toolbar.Create().Text("Add Zone"))
      .Sortable()
      .Pageable()
      .ClientDetailTemplateId("template")
      .DataSource(ds => ds
          .Ajax()
          .Sort(s => s.Add(d => d.Name))
          .Model(m =>
          {
              m.Id(f => f.Id);
          })
          .PageSize(5)
          .ServerOperation(false)
          .Events(events => events.Error("handleErrors"))
          .Read("Zones_Read", "ZoneData", new { area = "Configuration" })
          .Create("Zones_Create", "ZoneData", new { area = "Configuration" })

</script>

Подсетка

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<AlertZoneSubscription>()
          .Name("grid_#=Id#")
          .Columns(c =>
          {
             // omitted some column code
              c.Command(command =>
              {
                  command.Edit();
                  command.Destroy();
              }).Width(220);
          })
          .Editable(GridEditMode.InLine)
          .ToolBar(toolbar => toolbar.Create().Text("Add Subscriber"))
          .Sortable()
          .Pageable()
          .DataSource(ds => ds
              .Ajax()
              .Sort(s => s.Add(d => d.NotificationEventTargetId))
              .Model(m =>
              {
                  m.Id(f => f.Id);
              })
              .PageSize(10)
              .Events(events => events.Error("handleErrors"))
              .Read("ZoneSubscriptions_Read", "zoneData", new { area = "Configuration", zoneId = "#=Id#" })
              .Create("ZoneSubscriptions_Create", "ZoneData", new { area = "Configuration", ZoneId = "#=Id#" })
              .Destroy("ZoneSubscriptions_Delete", "ZoneData", new { area = "Configuration" }))
          .ToClientTemplate()
          )
</script>

РЕДАКТИРОВАТЬ: В моем методе расширения kendo.ui.validator,Я добавил правило для проверки нескольких столбцов.Я мог бы сослаться на сетку по элементам, используя ".closest (" [data-role = grid] "). Data (" kendoGrid "). DataSource.data ();

...