Я пытаюсь создать интерфейс фильтра для одного из моих столбцов в сетке кендо, который должен быть выбранным вниз.
Пока у меня есть:
function stateFilter(element)
{
element.kendoDropDownList({
dataSource: [
{
"state": "New",
"stateId": 1
},
{
"state": "Current",
"stateId": 2
},
{
"state": "Non-finalised",
"stateId": 7
}
],
optionLabel: 'Select state',
dataTextField: 'state',
dataValueField: 'stateId',
template: '#="<span class=\'filterTrigger\' data-value=\'"+stateId+"\'>"+state+"</span>" #',
select: function(e)
{
console.log(e)
var val = e.item[0].innerHTML
val = val.substring(41, 40);
html = e.item[0].innerText;
activeFilter = activeFilter.filter(function( obj ) {
return obj.field !== 'state';
})
activeFilter.push({
field: 'state',
operator: 'eq',
value: val
})
$('.k-animation-container').hide();
filtersState = 1 ;
grid.dataSource.filter(activeFilter);
}
})
}
Есть ли лучший способ получить stateId
из источника данных, чем передать его в качестве параметра данных и измельчить его с помощью substring()
и передать это как значение?
Это сетка Kendo, которая имеет выпадающее меню в сетке для изменения значений и синтаксиса бритвы. За что стоит, я отправлю код. Он немного усечен, и все фунты открытия/закрытия должны выстраиваться в линию.
columns.Bound(m => m.IncludeInForecast).HtmlAttributes(new { Align="center"}).Title("Include In Forecast?").ClientTemplate(
"\\# if (IncludeInForecast == true) { \\#" +
"<select id='\\#= OrderDetailId \\#' onchange=SaveIncludeInForecast('\\#= OrderDetailId \\#','\\#= ProposalId \\#'); style='Width: 80px; color: 'navy' > " +
"<option id='yes' selected value='1'>Yes</option>" +
"<option id='no' value='0'>No</option>" +
"</select>" +
"\\# } else { \\#" +
"<select id='\\#= OrderDetailId \\#' onchange=SaveIncludeInForecast('\\#= OrderDetailId \\#','\\#= ProposalId \\#'); style='Width: 80px; color: 'navy' > " +
"<option id='yes' value='1'>Yes</option>" +
"<option id='no' selected value='0'>No</option>" +
"\\# } \\#" +
"\\# }
);
Вы заметите места, где я делаю это '\\#= ProposalId \\#'
. Это то, как вы можете захватывать ценности от модели.
Тогда полученная функция
function SaveIncludeInForecast(orderDetailId, proposalId)
{
}
Надеюсь, это не совсем бесполезно.
Я не совсем уверен, что вы делаете. Если вы просто хотите добавить раскрывающийся список в качестве фильтра в столбце в сетке, это намного проще, чем то, что вы делаете.
Вот быстрый пример, который делает именно это... http://jsbin.com/coreh/1/edit
Если это не то, что вы имеете в виду, отправьте код для своей сетки, чтобы лучше определить, что вы пытаетесь выполнить.