У меня есть основная сетка под названием «Зоны», и у каждой зоны есть 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 ();