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

Why don't get FilterExpression of content?

1 Answer 100 Views
Grid
This is a migrated thread and some comments may be shown as answers.
小章
Top achievements
Rank 1
小章 asked on 05 Feb 2015, 04:46 PM
I have other project ,It can get "FilterExpression"

code below
=========================================================================================================================
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeBehind="AdventureWork.aspx.cs" Inherits="Simple.RadGridSortAndPaging.Views.AdventureWork" EnableViewState="false" ViewStateMode="Disabled" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        function onRequestStart(sender, args) {
            if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 ||
                    args.get_eventTarget().indexOf("ExportToWordButton") >= 0 ||
                    args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) {
                args.set_enableAjax(false);
            }
        }
    </script>
    <form id="form1" runat="server">
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
            <Scripts>
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
            </Scripts>
        </telerik:RadScriptManager>

        <%--<telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" />--%>
        <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" />
        <telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel" LoadingPanelID="RadAjaxLoadingPanel1">
        </telerik:RadAjaxPanel>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <%--<ClientEvents OnRequestStart="onRequestStart" />--%>
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadGrid1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <%--<telerik:RadFormDecorator runat="server" DecorationZoneID="demo" EnableRoundedCorners="false" DecoratedControls="All" />--%>
        <asp:ValidationSummary runat="server" ID="ValidationSummary1" />
        <div>
            <div>
                <telerik:RadGrid ID="RadGrid1" runat="server" Culture="zh-TW" Width="990px"
                    AllowCustomPaging="True"
                    AllowPaging="True"
                    PageSize="12"
                    AllowSorting="True"
                    ShowFooter="True"
                    AllowAutomaticDeletes="True"
                    AllowAutomaticInserts="True"
                    AllowAutomaticUpdates="True"
                    AutoGenerateColumns="False"
                    AllowMultiRowSelection="True"
                    AllowMultiRowEdit="true"
                    OnNeedDataSource="RadGrid1_NeedDataSource">

                    <ExportSettings ExportOnlyData="True" OpenInNewWindow="True" IgnorePaging="False">
                        <Excel Format="ExcelML"></Excel>
                    </ExportSettings>
                    <ClientSettings EnableRowHoverStyle="true">
                        <Selecting AllowRowSelect="True"></Selecting>
                    </ClientSettings>
                    <EditItemStyle Wrap="False" />
                    <FilterMenu EnableImageSprites="False"></FilterMenu>
                    <MasterTableView CommandItemDisplay="Top" GridLines="none"
                        DataKeyNames="OrderID"
                        AllowFilteringByColumn="True"
                        AllowSorting="True"
                        ShowFooter="False"
                        ItemType="Simple.RadGridSortAndPaging.Models.Orders">
                        <CommandItemSettings ExportToPdfText="Export to PDF" ShowAddNewRecordButton="False" ShowRefreshButton="False" ShowExportToExcelButton="true"></CommandItemSettings>

                        <Columns>
                            <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Edit" Text="Edit" HeaderText="" UniqueName="Edit" />
                            <telerik:GridTemplateColumn HeaderText="BusinessEntityID" UniqueName="BusinessEntityID"
                                DataField="BusinessEntityID" SortExpression="BusinessEntityID">
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text="<%# BindItem.OrderID %>"></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text="<%# BindItem.OrderID %>"></asp:Label>
                                </EditItemTemplate>
                            </telerik:GridTemplateColumn>

                            <telerik:GridBoundColumn DataField="CustomerID" AutoPostBackOnFilter="True" FilterControlAltText="Filter CustomerID column" HeaderText="CustomerID" SortExpression="CustomerID" UniqueName="CustomerID">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="CustomerID" HeaderText="CustomerID11" SortExpression="CustomerID" UniqueName="CustomerID11"
                                CurrentFilterFunction="Contains" AutoPostBackOnFilter="True" ShowFilterIcon="true" FilterDelay="2600" FilterControlAltText="Filter CustomerID column">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                                <HeaderStyle HorizontalAlign="Center" Width="70px"></HeaderStyle>
                                <ItemStyle HorizontalAlign="Center" />
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="EmployeeID" FilterControlAltText="Filter EmployeeID column" HeaderText="EmployeeID" SortExpression="EmployeeID" UniqueName="EmployeeID">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="OrderDate" DataFormatString="{0:yyyy/MM/dd}" FilterControlAltText="Filter FirstName column" HeaderText="OrderDate" SortExpression="OrderDate" UniqueName="OrderDate">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="RequiredDate" DataFormatString="{0:yyyy/MM/dd}" FilterControlAltText="Filter RequiredDate column" HeaderText="MiddleName" SortExpression="RequiredDate" UniqueName="RequiredDate">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShippedDate" DataFormatString="{0:yyyy/MM/dd}" FilterControlAltText="Filter LastName column" HeaderText="ShippedDate" SortExpression="ShippedDate" UniqueName="ShippedDate">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipVia" FilterControlAltText="Filter ShipVia column" HeaderText="ShipVia" SortExpression="ShipVia" UniqueName="ShipVia">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Freight" FilterControlAltText="Filter Freight column" HeaderText="Freight" SortExpression="Freight" UniqueName="Freight">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipName" FilterControlAltText="Filter ShipName column" HeaderText="ShipName" SortExpression="AdditionalContactInfo" UniqueName="ShipName">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipAddress" FilterControlAltText="Filter ShipAddress column" HeaderText="ShipAddress" SortExpression="ShipAddress" UniqueName="ShipAddress">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipCity" FilterControlAltText="Filter ShipCity column" HeaderText="ShipCity" SortExpression="ShipCity" UniqueName="ShipCity">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipRegion" FilterControlAltText="Filter ShipRegion column" HeaderText="ShipRegion" SortExpression="ShipRegion" UniqueName="ShipRegion">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ShipCountry" FilterControlAltText="Filter ShipCountry column" HeaderText="ShipCountry" SortExpression="ShipCountry" UniqueName="ShipCountry">
                                <ColumnValidationSettings>
                                    <ModelErrorMessage Text=""></ModelErrorMessage>
                                </ColumnValidationSettings>
                            </telerik:GridBoundColumn>

                            <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" Text="Delete" HeaderText="" UniqueName="Delete" />
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>
            </div>
        </div>
        <br />
    </form>
</body>
</html>

=========================================================================================================================

C# Code
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    if (!e.IsFromDetailTable)
    {
        var radGrid = (RadGrid)sender;

        var where1 = RadGridHelper.GetFilterExpression(radGrid.MasterTableView, null);
        var orderBy1 = RadGridHelper.GetOrderBy(radGrid.MasterTableView);
        var filter = radGrid.MasterTableView.FilterExpression;
        var orderBy = radGrid.MasterTableView.SortExpressions.GetSortString();

        var skip = radGrid.MasterTableView.CurrentPageIndex * radGrid.MasterTableView.PageSize;
        var take = radGrid.MasterTableView.PageSize;
        var totalRowCount = 0;
        radGrid.DataSource = GetAllOrders(skip, take, orderBy, filter, out totalRowCount);

        if (e.RebindReason == GridRebindReason.InitialLoad
             || e.RebindReason == GridRebindReason.ExplicitRebind)
        {
            radGrid.VirtualItemCount = totalRowCount;
        }
    }
}
public IEnumerable<Orders> GetAllOrders(
    int startRowIndex, int maximumRows, string sortExpression, string filterExpression, out int totalRowCount)
{
    if (string.IsNullOrWhiteSpace(sortExpression))
    {
        sortExpression = "OrderID ASC";
    }
    NorthwindDbContext dbContext = new NorthwindDbContext();

    var query = dbContext.Orders.OrderBy(sortExpression);

    if (!string.IsNullOrWhiteSpace(filterExpression))
    {
        query = query.Where(filterExpression);
    }

    totalRowCount = query.Count();

    query = query.Skip(startRowIndex);
    query = query.Take(maximumRows);

    return query.AsNoTracking().ToList();
}

1 Answer, 1 is accepted

Sort by
0
Accepted
Maria Ilieva
Telerik team
answered on 10 Feb 2015, 01:00 PM
Hello,

I'm not aware of the RadGridHelper class that you are creating so I can not be sure why the FilterExpression is not properly accessed. You can simply get the FilterExpression like this:

Session["FILTER_EXPRESSION"] = RadGrid1.MasterTableView.FilterExpression;
string expression = Session["FILTER_EXPRESSION"].ToString();



Regards,
Maria Ilieva
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
Grid
Asked by
小章
Top achievements
Rank 1
Answers by
Maria Ilieva
Telerik team
Share this question
or