Tag Archives: operator

Kendo Grid için varsayılan filtre operatörü özelliği

Kendo Grid için kolon varsayılan filtre operatörü eklentisi

kullanım basitçe şu şekilde:

columns: [{
field: “productName”,
// Buraya varsayılan olarak gelmesini istediğimiz filter operatörünü yazıyoruz
defaultFilter:”contains”
}, {
field: “category”
}
],

Örnek için tıklayınız

function InitColumnListMenu(e) {
  var menuColums = e.container.find("[role='menuitemcheckbox']");
	menuColums.each(function (index, item) {
		var columnChkInput = $(item).find("input");
		var columnName = columnChkInput.data("field");
  	var columnOption = e.sender.options.columns.filter(function (data) {
				return data.field == columnName;
			});
		if (columnOption.length > 0) {
			var removable = columnOption[0].removable == false;
			var isDisabled = columnChkInput.prop("disabled");
			if (removable && !isDisabled) {
				columnChkInput.attr("type", "radio");
				columnChkInput.parent().click(function (e) {
					var e = e || event;
					e.stopPropagation();
					return false;
				});
			}
		}
	});
}
function InitFilterMenu(e) {
  var drpDowns = $(e.container).find("[data-role='dropdownlist']").not('.k-filter-and');
	var numericInputs = $(e.container).find("[data-role='numerictextbox']");
	var inputs = $(e.container).find('input[type=text]').not(".k-formatted-value");
	if (inputs.length != drpDowns.length)
		return;

	var dfoCol;
	$(e.sender.options.columns).each(function (i, item) {
		if (item.field == e.field)
			dfoCol = item;
	});

	// defaultFilter
	drpDowns.each(function (i, select) {

    //kolon bulundu ise ve defaultFilter özelligi set edildi ise
		if (dfoCol && dfoCol.defaultFilter && inputs[i].value == "") 
		{
			var dfo = dfoCol.defaultFilter;
			var dfoOption = $(select).find("option[value='" + dfo + "']");
			if (dfoOption) {
				var dfoIndex = dfoOption.index();
				var d = $(select).getKendoDropDownList();
				d._initial = dfoCol.defaultFilter;
				d.select(dfoIndex);
				d.trigger('change');
			}
		}
	});
	numericInputs.each(function (i, nInput) {
		var editor = $(nInput).getKendoNumericTextBox();
     //kolon bulundu ise ve editorFormat özelligi set edildi ise
		if (dfoCol && dfoCol.editorFormat)
		{
			editor.setOptions({
				format: dfoCol.editorFormat
			});
		}
    //kolon bulundu ise ve editorDecimals özelligi set edildi ise
		if (dfoCol && dfoCol.editorDecimals) 
		{
			editor.setOptions({
				decimals: dfoCol.editorDecimals
			});
		}
	});
}
$("#grid").kendoGrid({
	selectable: "multiple cell",
	allowCopy: true,
	filterable: true,
	columns: [{
			field: "productName",
    defaultFilter:"contains"
		}, {
			field: "category"
		}
	],
  columnMenu:true,
 	filterMenuInit: function (e) {
    var that = e;
		e.sender.bind("open", function (e) {
			InitFilterMenu(that);
		});
	},
  columnMenuInit:function(e){
    if (e.sender.options.filterable) {
      var that = e;
			var filterMenu = e.container.find("[data-role='filtermenu']").getKendoFilterMenu();
			if (filterMenu) {
				filterMenu.popup.bind("open", function (e) {
					InitFilterMenu(that);
				});
			}
		}
  },
	dataSource: [{
			productName: "Tea",
			category: "Beverages"
		}, {
			productName: "Coffee",
			category: "Beverages"
		}, {
			productName: "Ham",
			category: "Food"
		}, {
			productName: "Bread",
			category: "Food"
		}
	]
});