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

RadGrid reducing filter options

3 Answers 179 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Contact
Top achievements
Rank 1
Contact asked on 24 Apr 2012, 11:17 AM
Hi

I'm using a Radgrid, fairly simple implementation:

<telerik:RadGrid ID="approval" runat="server" AutoGenerateColumns="False"
            CellSpacing="0" GridLines="None" AllowFilteringByColumn="true"
            onneeddatasource="approval_NeedDataSource"
            OnItemCommand="approval_ItemCommand" OnInit="approval_Init" >

<MasterTableView allowpaging="True" datakeynames="Id" AllowSorting="true"
    name="claims" commanditemdisplay="Bottom"  AllowFilteringByColumn="true">

I'm having an issue with the filter options, I have enabled column filtering and this is working fine.  I want to limit the number of filter options available.  I followed this guide: http://www.telerik.com/help/aspnet-ajax/grid-reducing-filtermenu-options.html 

I created an Init handler:
protected void approval_Init(object sender, EventArgs e)
{
    GridFilterMenu menu = approval.FilterMenu;
    int i = 0;
    while (i < menu.Items.Count)
    {
        if (menu.Items[i].Text == "NoFilter" || menu.Items[i].Text == "Contains" || menu.Items[i].Text == "DoesNotContain"  || menu.Items[i].Text == "EqualTo" || menu.Items[i].Text == "GreaterThan" || menu.Items[i].Text == "LessThan")
        {
            i++;
        }
        else
        {
            menu.Items.RemoveAt(i);
        }
    }
}


However this isn't working, if I attach a breakpoint the code isn't being hit.

Any advice?

Thanks

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 24 Apr 2012, 11:56 AM
Hello David,

I tried the same scenario which fires the Init event as expected. Here is the sample code and attached is the screenshot.
aspx:
<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <telerik:RadGrid ID="approval" runat="server" AutoGenerateColumns="false" OnInit="approval_Init"
            OnItemCommand="approval_ItemCommand" OnNeedDataSource="approval_NeedDataSource">
            <MasterTableView AllowPaging="True" AllowSorting="true" Name="claims" CommandItemDisplay="Bottom"
                   AllowFilteringByColumn
="true">
                <Columns>
                    <telerik:GridBoundColumn DataField="EmployeeID" UniqueName="EmployeeID" HeaderText="EmployeeID">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
    </div>
</form>
C#:
protected void approval_Init(object sender, EventArgs e)
{
  GridFilterMenu menu = approval.FilterMenu;
  int i = 0;
   while (i < menu.Items.Count)
   {
      if (menu.Items[i].Text == "NoFilter" || menu.Items[i].Text == "Contains" || menu.Items[i].Text == "EqualTo" || menu.Items[i].Text == "GreaterThan" || menu.Items[i].Text == "LessThan")
      {
         i++;
      }
      else
      {
       menu.Items.RemoveAt(i);
      }
   }
}
Please elaborate your scenario for further assistance.

Thanks,
Shinu.
0
Contact
Top achievements
Rank 1
answered on 24 Apr 2012, 01:18 PM
Thanks for your response.

The issue I'm facing is purely because I can't get the onInit event to work.  If I insert breakpoints at other places such as onNeedDatasource that works fine.  For some odd reason I my onInit event is not firing.

My Grid is within an Telerik:RadAjaxPanel.

This is the entire code for my grid

<telerik:RadAjaxPanel runat="server" ID="radGridPanel">
        <telerik:RadGrid ID="expenseApproval" runat="server" AutoGenerateColumns="False"
            CellSpacing="0" GridLines="None" OnInit="expenseApproval_Init"
            onneeddatasource="expenseApproval_NeedDataSource"
            OnItemCommand="expenseApproval_ItemCommand">
            <SortingSettings SortedAscToolTip="Sort" SortedBackColor="#E2E2E2" />
            <MasterTableView allowpaging="True" datakeynames="Id" AllowSorting="true"
                name="claims" commanditemdisplay="Bottom" NoMasterRecordsText="You don't currently have any claims to approve." AllowFilteringByColumn="true">
                <CommandItemSettings ExportToPdfText="Export to PDF" ShowRefreshButton="false" ShowAddNewRecordButton="false"></CommandItemSettings>
                <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn>
                <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column" visible="True"></ExpandCollapseColumn>
                <Columns>
                    <telerik:GridHyperLinkColumn SortExpression="StartDate" DataNavigateUrlFields="HistoryLink" DataTextField="StartDate" DataType="System.DateTime" DataTextFormatString="{0:d}"  FilterControlAltText="Filter by date" HeaderText="Start Date" UniqueName="StartDate" HeaderStyle-HorizontalAlign="Left"></telerik:GridHyperLinkColumn>
                    <telerik:GridBoundColumn DataField="ClaimNumber" DataFormatString="{0:d}" FilterControlAltText="Filter TripNumber date" HeaderText="Trip Number" UniqueName="TripNumber" HeaderStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Country" FilterControlAltText="Filter Country column" HeaderText="Country" UniqueName="Country" HeaderStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                    <telerik:GridBoundColumn AllowFiltering="true" DataField="Location" FilterControlAltText="Filter Location column" HeaderText="Location" MaxLength="20" UniqueName="Location" HeaderStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                    <telerik:GridBoundColumn AllowFiltering="true" DataField="Purpose"  FilterControlAltText="Filter Purpose column" HeaderText="Purpose" UniqueName="Purpose" HeaderStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="PersonnelNumber" FilterControlAltText="Filter PersonnelNumber column" HeaderText="Personnel Number" Visible="true" ReadOnly="True" UniqueName="PersonnelNumber" HeaderStyle-HorizontalAlign="Left"></telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Id" Display="False" FilterControlAltText="Filter Id column" HeaderText="Id" ReadOnly="True" UniqueName="Id" ></telerik:GridBoundColumn>
                </Columns>
                <EditFormSettings>
                <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn></EditFormSettings>
            </MasterTableView>
            <FilterMenu EnableImageSprites="False"></FilterMenu>
            <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
            <PagerStyle Mode="NextPrevAndNumeric" />
            <ClientSettings EnableRowHoverStyle="true" AllowColumnsReorder="true">
                <Selecting AllowRowSelect="false" />
                <Scrolling AllowScroll="false" />
                <ClientEvents OnFilterMenuShowing="filterMenuShowing" />
             </ClientSettings>
            <FilterMenu OnClientShown="MenuShowing" />
        </telerik:RadGrid>
</telerik:RadAjaxPanel>

My code behind is very basic, onNeedDataSource, the preRender method, and page load.

Do you have any ideas why my init wouldn't fire?

Again, here's the code for my init method:

protected void expenseApproval_Init(object sender, EventArgs e)
{
    GridFilterMenu menu = expenseApproval.FilterMenu;
    int i = 0;
    while (i < menu.Items.Count)
    {
        if (menu.Items[i].Text == "NoFilter" || menu.Items[i].Text == "Contains" || menu.Items[i].Text == "DoesNotContain"  || menu.Items[i].Text == "EqualTo" || menu.Items[i].Text == "GreaterThan" || menu.Items[i].Text == "LessThan")
        {
            i++;
        }
        else
        {
            menu.Items.RemoveAt(i);
        }
    }
}

Thanks
David
0
Contact
Top achievements
Rank 1
answered on 24 Apr 2012, 04:29 PM
Issue now resolved.

The Init method wasn't working due to a deployment problem, the latest version of the ASCX wasn't being deployed correctly.

Thanks
Tags
Grid
Asked by
Contact
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Contact
Top achievements
Rank 1
Share this question
or