I am trying to hide the filter options of a grid based on the type of the column. I have found numerous examples but NONE seem to work. They work the very first time you click on a filter icon. If you then click on a different type of column you get different options but not the correct ones. They seem to be random based on what order you click on the filter icon. Please help!!
var oldFilterStyle = "";
function FilterMenuShowing(sender, eventArgs) {
var menu = eventArgs.get_menu();
var items = menu._itemData;
if (eventArgs.get_column().get_dataType() == "System.String") {
var i = 0;
while (i < items.length) {
if (items[i].value != "NoFilter" && items[i].value != "IsEmpty" &&
items[i].value != "EqualTo" && items[i].value != "NotEqualTo" &&
items[i].value != "StartsWith" && items[i].value != "EndsWith" &&
items[i].value != "Contains" && items[i].value != "DoesNotContain") {
var item = menu._findItemByValue(items[i].value);
if (item != null) {
if (item._element.style.display != "none") {
oldFilterStyle = item._element.style.display;
item._element.style.display = "none";
}
}
}
i++;
}
}
else if (eventArgs.get_column().get_dataType() == "System.Decimal" || eventArgs.get_column().get_dataType() == "System.Int32") {
var i = 0;
while (i < items.length) {
if (items[i].value != "NoFilter" && items[i].value != "IsEmpty" &&
items[i].value != "EqualTo" && items[i].value != "NotEqualTo" &&
items[i].value != "GreaterThan" && items[i].value != "LessThan" &&
items[i].value != "GreaterThanOrEqualTo" && items[i].value != "LessThanOrEqualTo" &&
items[i].value != "Between" && items[i].value != "NotBetween") {
var item = menu._findItemByValue(items[i].value);
if (item != null) {
if (item._element.style.display != "none") {
oldFilterStyle = item._element.style.display;
item._element.style.display = "none";
}
}
}
i++;
}
}
else {
alert(eventArgs.get_column().get_dataType());
var i = 0;
while (i < items.length) {
var item = menu._findItemByValue(items[i].value);
if (item != null) {
if (oldFilterStyle != "" && item._element.style.display == "none")
item._element.style.display = oldFilterStyle;
}
i++;
}
}