protected void RadGrid1_ItemCreated(object sender, Telerik.WebControls.GridItemEventArgs e) |
{ |
if (e.Item is GridFilteringItem) |
{ |
foreach (GridColumn column in e.Item.OwnerTableView.RenderColumns) |
{ |
if (!column.Visible) |
continue; |
|
TextBox FilterTextBox = (TextBox)((GridFilteringItem)e.Item)[column.UniqueName].Controls[0]; |
FilterTextBox.Style["float"] = "left"; |
Image FilterImage = (Image)((GridFilteringItem)e.Item)[column.UniqueName].Controls[1]; |
FilterImage.Visible = false; |
|
RadMenu RadMenu1 = new RadMenu(); |
RadMenu1.Style["border"] = "0px;"; |
RadMenu1.Items.Add(new RadMenuItem("")); |
RadMenu1.Items[0].ImageUrl = "~/Filter.gif"; |
RadMenu1.Items[0].Attributes["onclick"] = "return false;"; |
|
RadMenuItem RadMenuItem1 = new RadMenuItem("NoFilter"); |
RadMenuItem1.Value = column.UniqueName; |
RadMenu1.Items[0].Items.Add(RadMenuItem1); |
RadMenuItem separator = new RadMenuItem(); |
separator.IsSeparator = true; |
RadMenu1.Items[0].Items.Add(separator); |
|
foreach (string function in Enum.GetNames(typeof(GridKnownFunction))) |
{ |
if (function == "NoFilter" || function == "Custom" || (column.DataType == Type.GetType("System.Int32") && |
( |
function == "Contains" || |
function == "DoesNotContain" || |
function == "StartsWith" || |
function == "EndsWith" || |
function == "IsEmpty" || |
function == "NotIsEmpty" |
))) |
continue; |
RadMenuItem RadMenuItem2 = new RadMenuItem(function); |
RadMenuItem2.Value = column.UniqueName; |
RadMenu1.Items[0].Items.Add(RadMenuItem2); |
} |
|
RadMenu1.FindItemByText(column.CurrentFilterFunction.ToString()).Font.Bold = true; |
|
RadMenu1.ItemClick += new RadMenuEventHandler(RadMenu1_ItemClick); |
|
((GridFilteringItem)e.Item)[column.UniqueName].Controls.Add(RadMenu1); |
} |
} |
} |
|
void RadMenu1_ItemClick(object sender, RadMenuEventArgs e) |
{ |
string functionName = e.Item.Text; |
string columnUniqueName = e.Item.Value; |
|
RadGrid1.MasterTableView.GetItems(GridItemType.FilteringItem)[0].FireCommandEvent("Filter", new Pair(functionName, columnUniqueName)); |
|
} |