Возможны различные варианты реализации. Здесь я опишу один, основанный на kendoWindow
, так как тогда у вас есть много возможных настроек для этой формы фильтрации.
Это HTML, который включает в себя кнопку:
<div>
This is the container that includes a
<button id="filter" class="k-button">Filter</button>
that is used to display a form
</div>
И затем вы определяете форму HTML. Пример:
<div id="form">
<div>Filtering value:<input data-role="autocomplete"/></div>
<button class="k-button">Filter</button>
</div>
Выполнение инициализации формы является:
var form = $("#form").kendoWindow({
title : "Filter",
visible : false,
modal : false,
draggable: false
}).data("kendoWindow");
Где первоначально мы установили форму, как не видно.
Вы можете определить его как modal
, draggable
или даже определить эффект открытия и закрытия.
Наконец, для открытия и размещения формы просто ржали кнопку следует:
$("#filter").on("click", function(e) {
// Find clicked button
var button = $(e.currentTarget);
// and get its position
var pos = button.offset();
// shift down the form to open by the height of the button + 5px (margin)
pos.top += button.outerHeight() + 5;
// Apply positioning to the form
form.wrapper.css(pos);
// display form
form.open();
});
Вы можете увидеть это здесь: http://jsfiddle.net/OnaBai/mpq6k/
Это у меня большую часть пути туда. Оттуда я избавился от названия меню 'title: false'. Затем мне пришлось прикрепить событие клика к документу, который закроет окно, если цель события не имела окна кендо в качестве предка (что было сложно, так как DropDownList UL не находится в окне, но где-то рядом с документом корень). Теперь мне просто нужно создать динамическую форму для разных полей, dataTypes и операторов. –