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

RadGrid ExportToCSV() with RadFilter and IgnorePaging

4 Answers 209 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Karl
Top achievements
Rank 1
Karl asked on 29 Mar 2014, 12:29 AM
I have a RadGrid, with a RadFilter applied to it.   I am not using RadAjaxPanel or any Ajax controls.

When I execute a RadGrid.MasterTableView.ExportToCSV(),  I do not get any data returned when IgnorePaging = true.  

If I set IgnorePaging = false, I get exported data, but only the first page.

How do I get the full dataset of the grid when using RadFilter? 

4 Answers, 1 is accepted

Sort by
0
Karl
Top achievements
Rank 1
answered on 29 Mar 2014, 01:10 AM
I have tried another approach also.  I changed the grid binding to GridNeedDataSource.  But now it throws an exception when I try to apply the RadFilter at the .LoadSettings(query)

Anyone experience these challenges? 
0
Princy
Top achievements
Rank 2
answered on 01 Apr 2014, 09:32 AM
Hi Karl,

I was not able to replicate such an issue at my end. Please try the sample code snippet. If this doesn't help, provide your full code snippet.

ASPX:
<telerik:RadFilter runat="server" ID="RadFilter1" FilterContainerID="RadGrid1" ShowApplyButton="false">
</telerik:RadFilter>
<telerik:RadGrid runat="server" ID="RadGrid1" AutoGenerateColumns="false" DataSourceID="SqlDataSource1" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" OnItemCommand="RadGrid1_ItemCommand">
    <MasterTableView IsFilterItemExpanded="false" CommandItemDisplay="Top">
        <CommandItemTemplate>
            <telerik:RadButton ID="RadButton1" runat="server" Text="Apply filter" CommandName="FilterRadGrid">
            </telerik:RadButton>
        </CommandItemTemplate>
        <Columns>
            <telerik:GridNumericColumn DataField="OrderID" HeaderText="OrderID" DataType="System.Int32">
            </telerik:GridNumericColumn>
            <telerik:GridDateTimeColumn DataField="OrderDate" HeaderText="OrderDate" DataFormatString="{0:MM/dd/yyyy}">
            </telerik:GridDateTimeColumn>
            <telerik:GridNumericColumn DataField="ShipVia" HeaderText="ShipVia" DataType="System.Int32">
            </telerik:GridNumericColumn>
            <telerik:GridBoundColumn DataField="ShipName" HeaderText="ShipName">
            </telerik:GridBoundColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>
<asp:Button ID="btnExport" runat="server" Text="Export to CSV" OnClick="btnExport_Click" />

C#:
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
    if (e.CommandName == "FilterRadGrid")
    {
        RadFilter1.FireApplyCommand();
    }
}
protected void btnExport_Click(object sender, System.EventArgs e)
{
    RadGrid1.ExportSettings.IgnorePaging = true;
    RadGrid1.ExportSettings.ExportOnlyData = true;
    RadGrid1.MasterTableView.ExportToCSV();
}

Thanks,
Princy
0
Karl
Top achievements
Rank 1
answered on 01 Apr 2014, 08:03 PM
Thanks Princy.  This is the idea.  I am passing in a querystring that retrieves the RadFilter filter/state string.  I then call  .LoadSettings(state) and then .FireApplyCommand()   Below is similar to what I want to accomplish, minus checking for necessary postbacks, etc.  



int FilterQuery;
        protected void Page_Load(object sender, EventArgs e)
        {
            // Try parse the querystring to ensure it is an int.  If not, display an error.
            if (Int32.TryParse(Server.HtmlEncode(Request.QueryString["q"]), out FilterQuery))
            {
                FilterMenu.SelectedValue = FilterGridQuery.ToString();
                Applyfilter(FilterQuery);
            }
            else
            {
                // Display error
            }
        }
 
        public void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            var data = from x in db.Items
                       select x;
            RadGrid1.DataSource = data;
        }
 
        public void btnExport_Click(object sender, EventArgs e)
        {
            RadGrid1.ExportSettings.IgnorePaging = true;
            RadGrid1.ExportSettings.ExportOnlyData = true;
            RadGrid1.MasterTableView.ExportToCSV();
        }
 
        protected void ApplyFilter(int filter)
        {
            var filter = from x in db.filters
                         select x.query;
 
            RadFilter1.LoadSettings(filter.FirstOrDefault());
            RadFilter1.FireApplyCommand();
 
        }

0
Kostadin
Telerik team
answered on 02 Apr 2014, 01:32 PM
Hello Karl,

I prepared a small sample and on my side it seems to work correctly. Could you please give it a try and let me know how it differs from your real setup.

Regards,
Kostadin
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
Karl
Top achievements
Rank 1
Answers by
Karl
Top achievements
Rank 1
Princy
Top achievements
Rank 2
Kostadin
Telerik team
Share this question
or