This is a migrated thread and some comments may be shown as answers.

Reducing RadgridFilter options for SPECIFIC column

1 Answer 83 Views
Grid
This is a migrated thread and some comments may be shown as answers.
July
Top achievements
Rank 2
July asked on 04 Jan 2013, 02:22 PM
I have a grid, with diferents columns datatype.
I need for boolean columns reduce the options to --> Not filter and Equal To.

Currently I'm using a function to reduce options to all columns, but now I need other function to specific datatype column.

This is my aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true"
    CodeBehind="UserManagement.aspx.cs" Inherits="WebSearch.UI.Admin.UserManagement" %>

<%@ MasterType VirtualPath="~/UI/Doculex.Master" %>
<%@ Register TagPrefix="UC" TagName="header" Src="~/UI/UserControls/Header.ascx" %>
<%@ Register TagPrefix="UC" TagName="AddButtons" Src="~/UI/Admin/UserControls/Grid/AddTopButtons.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">



            function callBackFn(arg) { if (arg) refreshGrid('Remove'); }



            function getCountSelectedRow() {
                return GetRowCount($find("<%= Grid.ClientID %>"));
            }

            function ShowEditForm(id, IsScanUploadUser, rowIndex) {
                var grid = $find("<%= Grid.ClientID %>");

                var rowControl = grid.get_masterTableView().get_dataItems()[rowIndex].get_element();

                var oWindow = window.radopen("UserForm.aspx?ID=" + id + "&TYPE=" + IsScanUploadUser, "UserFormDialog");
                return false;
            }

            function showInsertForm() { var oWindow = window.radopen("UserForm.aspx", "UserFormDialog"); }




            function refreshGrid(arg) {
                if (arg != null) { $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest(arg); }
                else {
                    $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("RebindAndNavigate");
                }
            }


            function confirmCallBackFn(arg) {
                var ajaxManager = $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>");
                if (arg == true)
                { ajaxManager.ajaxRequest("Remove"); }
            }


            function rowDblClick(sender, eventArgs) {
                editedRow = eventArgs.get_itemIndexHierarchical();
                $find("<%= Grid.ClientID %>").get_masterTableView().editItem(editedRow);
            }

           
        </script>
    </telerik:RadCodeBlock>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <telerik:RadCodeBlock runat="server">
    </telerik:RadCodeBlock>
    <telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="Grid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadingPanel" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="btnDelete">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadingPanel" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="gbcbtnDelete">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadingPanel" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
    <UC:header runat="server" ID="headerPage" />
    <div id="containerSubWHelp">
        <asp:HiddenField ID="hfUserId" runat="server" />
        <telerik:RadGrid ID="Grid" runat="server" OnNeedDataSource="UserGrid_NeedDataSource"
            OnUpdateCommand="UserGrid_UpdateCommand" OnInsertCommand="UserGrid_InsertCommand"
            AutoGenerateColumns="False" OnItemCommand="UserGrid_ItemCommand" OnPreRender="UserGrid_PreRender"
            OnItemCreated="UserGrid_ItemCreated" OnDeleteCommand="UserGrid_DeleteCommand"
            OnItemDataBound="UserGrid_ItemDataBound">
            <MasterTableView DataKeyNames="Id,IsScanUploadUser">
                <Columns>
                    <telerik:GridClientSelectColumn CommandName="Select" UniqueName="Select" HeaderStyle-Width="28px"
                        Resizable="false" Reorderable="false">
                    </telerik:GridClientSelectColumn>
                    <telerik:GridTemplateColumn UniqueName="IsActive" DataField="IsActive" Reorderable="false"
                        HeaderStyle-Width="55px" AllowFiltering="true" Resizable="false">
                        <ItemTemplate>
                            <asp:ImageButton ID="ActiveIcon" runat="server" CommandName="Active"></asp:ImageButton>
                            <asp:CheckBox ID="lblIsActive" runat="server" Checked='<%# (DataBinder.Eval(Container.DataItem,"IsActive") is DBNull ?false:Eval("IsActive")) %>'
                                Visible="false" />
                            <asp:CheckBox ID="IsScanUploadUser" runat="server" Checked='<%# (DataBinder.Eval(Container.DataItem,"IsScanUploadUser") is DBNull ?false:Eval("IsScanUploadUser")) %>'
                                Visible="false" />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="AssumeColumn" HeaderStyle-Width="25px" Resizable="false"
                        AllowFiltering="false" Reorderable="false">
                        <ItemTemplate>
                            <asp:ImageButton ID="AssumeLink" runat="server" CommandName="Asumme" CommandArgument='<%# (DataBinder.Eval(Container.DataItem,"Id") ) %>'
                                ImageUrl="~/UI/Images/user_go.png"></asp:ImageButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="TemplateEditColumn" HeaderStyle-Width="31px"
                        Reorderable="false" AllowFiltering="false" Resizable="false">
                        <ItemTemplate>
                            <asp:ImageButton ID="EditLink" runat="server" ImageUrl="~/UI/Images/pencil.png">
                            </asp:ImageButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridEditCommandColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle"
                        HeaderStyle-Width="32px" Reorderable="false" ButtonType="ImageButton" EditImageUrl="~/UI/Images/grid_edit.png"
                        Resizable="false">
                    </telerik:GridEditCommandColumn>
                    <telerik:GridButtonColumn UniqueName="btnDelete" ButtonType="ImageButton" Reorderable="false"
                        CommandName="Delete" ConfirmDialogHeight="100px" ConfirmDialogWidth="300px" HeaderStyle-Width="28px"
                        Resizable="false" ImageUrl="~/UI/Images/delete.png" />
                    <telerik:GridTemplateColumn DataField="Id" UniqueName="Id" Visible="false">
                        <InsertItemTemplate>
                            <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Bind("Id") %>' ReadOnly="true"
                                Enabled="false" />
                        </InsertItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Eval("Id") %>' ReadOnly="true" />
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="FirstName" DataField="FirstName">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtFirstName" Width="90%" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>'></asp:TextBox>
                            <asp:Label Text="*" runat="server" CssClass="validator" />
                            <asp:RequiredFieldValidator ID="rfFirstName" runat="server" ControlToValidate="txtFirstName"></asp:RequiredFieldValidator>
                            <br />
                            <asp:RegularExpressionValidator ID="reFirstName" ControlToValidate="txtFirstName"
                                runat="server" ValidationExpression="^[0-9a-zA-Z\s]{1,249}$" CssClass="customValidator"
                                Display="Dynamic" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblFirstName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="MiddleName" DataField="MiddleName">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtMiddleName" Width="90%" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MiddleName") %>'></asp:TextBox>
                            <br />
                            <asp:RegularExpressionValidator ID="reMiddleName" ControlToValidate="txtMiddleName"
                                runat="server" ValidationExpression="^[0-9a-zA-Z]{0,249}$" CssClass="customValidator"
                                Display="Dynamic" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblMiddleName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MiddleName") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="LastName" DataField="LastName">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtLastName" runat="server" Width="80px" Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>'></asp:TextBox>
                            <asp:Label Text="*" runat="server" CssClass="validator" />
                            <asp:RequiredFieldValidator ID="rvfLastName" runat="server" ControlToValidate="txtLastName"></asp:RequiredFieldValidator>
                            <br />
                            <asp:RegularExpressionValidator ID="reLastName" ControlToValidate="txtLastName" runat="server"
                                ValidationExpression="^[0-9a-zA-Z\s]{1,249}$" CssClass="customValidator" Display="Dynamic" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblLastName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="Email" DataField="Email">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtEmail" Width="90%" CausesValidation="true" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'></asp:TextBox>
                            <asp:Label Text="*" runat="server" CssClass="validator" />
                            <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>
                            <br />
                            <asp:RegularExpressionValidator ID="revEmail" ControlToValidate="txtEmail" ValidationExpression="^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"
                                CssClass="customValidator" runat="server" Display="Dynamic"></asp:RegularExpressionValidator>
                            <asp:CustomValidator ValidationGroup="Information" ID="cvEmail" ControlToValidate="txtEmail"
                                CssClass="customValidator" runat="server" OnServerValidate="cvEmail_ServerValidate"
                                Display="Dynamic"></asp:CustomValidator>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblEmail" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="LoginId" DataField="LoginId">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtLoginId" CausesValidation="true" Width="90%" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LoginId") %>'></asp:TextBox>
                            <asp:Label Text="*" runat="server" CssClass="validator" />
                            <asp:RequiredFieldValidator ID="rfvLoginId" runat="server" ControlToValidate="txtLoginId" />
                            <br />
                            <asp:CustomValidator ID="cvLoginId" runat="server" ControlToValidate="txtLoginId"
                                CssClass="customValidator" ValidateEmptyText="True" Display="Dynamic" OnServerValidate="cvLoginId_ServerValidate" />
                            <asp:RegularExpressionValidator ID="reLogin" ControlToValidate="txtLoginId" runat="server"
                                ValidationExpression="^[0-9a-zA-Z\s]{1,249}$" CssClass="customValidator" Display="Dynamic" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblLoginId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LoginId") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="Phone" DataField="Phone">
                        <EditItemTemplate>
                            <telerik:RadMaskedTextBox ID="txtPhone" runat="server" MaxLength="11" CssClass="textBoxPopUp"
                                Text='<%# DataBinder.Eval(Container.DataItem, "Phone") %>' Mask="(###) ###-####-####"
                                DisplayMask="(###) ###-####-####" EnableSingleInputRendering="false">
                            </telerik:RadMaskedTextBox>
                            <br />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblPhone" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Phone") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="LastLogin" SortExpression="LastLogin">
                        <ItemTemplate>
                            <asp:Label ID="lblLastLogin" runat="server" Style="font-size: 10px" Enabled="false"
                                Text='<%# DataBinder.Eval(Container.DataItem, "LastLogin") %>' />
                            <br />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="IsSuper" DataField="IsSuper" DataType="System.Boolean">
                        <EditItemTemplate>
                            <asp:CheckBox ID="chkIsSuper" runat="server" Checked='<%# IsSuperUser(DataBinder.Eval(Container.DataItem, "Id").ToString()) %>' />
                            <br />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="lblIsSuper" runat="server" Enabled="false" Checked='<%#Convert.ToBoolean(Eval("IsSuper"))%>' />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
                <CommandItemTemplate>
                    <UC:AddButtons ID="AddButtons" runat="server" />
                </CommandItemTemplate>
            </MasterTableView><ClientSettings>
                <Selecting AllowRowSelect="True" />
                <ClientEvents OnRowDblClick="rowDblClick" />
               
            </ClientSettings>
        </telerik:RadGrid>
    </div>
    <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
        <Windows>
            <telerik:RadWindow ID="UserFormDialog" runat="server" Height="600px" Width="800px"
                ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" VisibleStatusbar="false"
                Behaviors="Move, Close" Animation="FlyIn" IconUrl="../../UI/Images/user.png" />
        </Windows>
    </telerik:RadWindowManager>
    <asp:HiddenField ID="HiddenName" runat="server" Visible="false" />
</asp:Content>


the class where reduce options for all columns is:
  {
            LogConfig.SaveInFile(Level.Debug, "Remove Filter options of current Grid as param " + radGrid1.ID, null,
                                 typeof (GridFunction).FullName, _stackTrace.GetFrame(1).GetMethod().Name);

            GridFilterMenu menu = radGrid1.FilterMenu;
            int index = 0;


           

            while ((index < menu.Items.Count))
            {
                
                if ((menu.Items[index].Text == "Contains" | menu.Items[index].Text == "StartsWith" |
                     menu.Items[index].Text == "NoFilter" | menu.Items[index].Text == "EqualTo" |
                     menu.Items[index].Text == "NotEqualTo" || menu.Items[index].Text == "DoesNotContain"))
                {
                    index = index + 1;
                    continue;
                }
                else
                {
                    menu.Items.RemoveAt(index);
                }
            }
        }




I attach 2 images of grid.
image1 --> Grid with options correct
image2 --> boolean column with incorrect options
See the last columns (Organization Admin) there i need 2 options only (not filter and equal to)


1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 05 Jan 2013, 04:58 AM
Hi July,

You should be able to change the filter menu options per column following the steps from this help topic.

Hope this helps.

Regards,
Princy.
Tags
Grid
Asked by
July
Top achievements
Rank 2
Answers by
Princy
Top achievements
Rank 2
Share this question
or