Hi,
I'm having problems exporting from a filtered gridcontrol. Whenever I apply a filter, it is applied perfectly on the webinterface, but exporting to .pdf format seems to ignore the filter, resulting in a full list of the datasource in the pdf file.
I've spent half a day reading through your forums, and tried every relevant course, without any luck. I've noticed that most of these, are not using OnNeedDataSource as datasource, could my problem be here?
I would be happy to supply code snippets, but as I have tried at least 10 different things with no success, I don't think my problem lies in the export itself.
I am not doing anything custom with the filtering, but it seems like the MasterTableView has forgotten its filtering, once the pdf event is fired. Should I be doing anything to ensure that the filter persists?
Any and all help would be much appreciated - and if you need additional info I'll supply it ASAP :)
I'm having problems exporting from a filtered gridcontrol. Whenever I apply a filter, it is applied perfectly on the webinterface, but exporting to .pdf format seems to ignore the filter, resulting in a full list of the datasource in the pdf file.
I've spent half a day reading through your forums, and tried every relevant course, without any luck. I've noticed that most of these, are not using OnNeedDataSource as datasource, could my problem be here?
I would be happy to supply code snippets, but as I have tried at least 10 different things with no success, I don't think my problem lies in the export itself.
I am not doing anything custom with the filtering, but it seems like the MasterTableView has forgotten its filtering, once the pdf event is fired. Should I be doing anything to ensure that the filter persists?
Any and all help would be much appreciated - and if you need additional info I'll supply it ASAP :)
3 Answers, 1 is accepted
0
Jayesh Goyani
Top achievements
Rank 2
answered on 20 Sep 2011, 08:13 PM
Hello,
please check below code snippet.
this code works for me let me its working or not in your side.
Thanks,
Jayesh Goyani
please check below code snippet.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm12.aspx.cs" Inherits="TelerikTest.Web.WebForm12" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowFilteringByColumn
=
"true"
onitemcommand
=
"RadGrid1_ItemCommand"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
CommandItemSettings
ShowExportToPdfButton
=
"true"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Name"
UniqueName
=
"Name"
HeaderText
=
"Name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
namespace
TelerikTest.Web
{
public
partial
class
WebForm12 : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
bindGrid();
}
}
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.FilterCommandName)
{
bindGrid();
}
if
(e.CommandName == RadGrid.ExportToPdfCommandName)
{
bindGrid();
}
}
protected
void
bindGrid()
{
dynamic data =
new
[] {
new
{ ID = 1, Name =
"Name1"
},
new
{ ID = 2, Name =
"Name2"
},
new
{ ID = 3, Name =
"Name3"
},
new
{ ID = 4, Name =
"Name4"
},
new
{ ID = 5, Name =
"Name5"
}
};
RadGrid1.DataSource = data;
RadGrid1.DataBind();
}
}
}
this code works for me let me its working or not in your side.
Thanks,
Jayesh Goyani
0
Jakob
Top achievements
Rank 1
answered on 21 Sep 2011, 09:29 AM
I can't seem to get this working.... When I try to filter my data now, the filter doesn't get applied at all, I just get the same result as on page_load.
Don't know what else to say, but here is my code:
Page
Code behind:
Don't know what else to say, but here is my code:
Page
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
/>
<!-- content start -->
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Black"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
ClientEvents-OnRequestStart
=
"requestStart"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
style
=
"margin-left: 20px;"
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowPaging
=
"True"
OnItemCommand
=
"RadGrid1_ItemCommand"
AllowFilteringByColumn
=
"True"
AutoGenerateColumns
=
"False"
>
<
GroupingSettings
CaseSensitive
=
"False"
/>
<
ExportSettings
IgnorePaging
=
"True"
OpenInNewWindow
=
"True"
>
<
Pdf
PageHeight
=
"210mm"
PageWidth
=
"297mm"
DefaultFontFamily
=
"Arial Unicode MS"
PageBottomMargin
=
"20mm"
PageTopMargin
=
"20mm"
PageLeftMargin
=
"20mm"
PageRightMargin
=
"20mm"
/>
</
ExportSettings
>
<
MasterTableView
Width
=
"100%"
>
<
CommandItemTemplate
>
<
asp:Button
ID
=
"DownloadPDF"
runat
=
"server"
CommandName
=
"ExportToPdf"
CssClass
=
"pdfButton"
/>
</
CommandItemTemplate
>
<
Columns
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"unikID"
HeaderText
=
"unikID"
Visible
=
"false"
SortExpression
=
"unikID"
UniqueName
=
"unikID"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
AutoPostBackOnFilter
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"Navn"
HeaderText
=
"Navn"
Visible
=
"true"
SortExpression
=
"Navn"
UniqueName
=
"Navn"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
AutoPostBackOnFilter
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"produktNavn"
HeaderText
=
"Produktnavn"
Visible
=
"true"
SortExpression
=
"produktNavn"
UniqueName
=
"produktNavn"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
AutoPostBackOnFilter
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"prodkatNavn"
HeaderText
=
"Kategori"
Visible
=
"true"
SortExpression
=
"prodkatNavn"
UniqueName
=
"prodkatNavn"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"placprodNavn"
HeaderText
=
"Produktplacering"
Visible
=
"true"
SortExpression
=
"placprodNavn"
UniqueName
=
"placprodNavn"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
AutoPostBackOnFilter
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"rekvNr"
HeaderText
=
"Rekv. Nr."
Visible
=
"true"
SortExpression
=
"unikID"
UniqueName
=
"rekvNr"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
AutoPostBackOnFilter
=
"true"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"Slider"
/>
</
telerik:RadGrid
>
Code behind:
public
partial
class
SimpleViewExport : System.Web.UI.UserControl
{
private
string
_con, _query;
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.FilterCommandName)
{
BindGrid();
}
if
(e.CommandName == RadGrid.ExportToPdfCommandName)
{
BindGrid();
}
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
Sitecore.Data.Fields.ReferenceField conlink = Sitecore.Context.Item.Fields[
"Connectionstring"
];
var constringfieldprefix = ConfigurationManager.AppSettings[
"ConnectionStringFieldPrefix"
];
_con = conlink !=
null
? conlink.TargetItem[constringfieldprefix +
"connectionstring"
] :
null
;
_query = Sitecore.Context.Item[
"Select statement"
];
if
(
string
.IsNullOrEmpty(_con) ||
string
.IsNullOrEmpty(_query))
{
this
.Visible =
false
;
return
;
}
if
(Sitecore.Context.Item[
"Title"
] !=
null
)
RadGrid1.ExportSettings.Pdf.PageTitle = Sitecore.Context.Item[
"Title"
];
if
(!IsPostBack)
{
BindGrid();
}
}
public
DataTable GetDataTable(
string
query)
{
SqlConnection conn =
new
SqlConnection(_con);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(query, conn);
DataTable myDataTable =
new
DataTable();
conn.Open();
try
{
adapter.Fill(myDataTable);
}
finally
{
conn.Close();
}
return
myDataTable;
}
protected
void
BindGrid()
{
RadGrid1.DataSource = GetDataTable(_query);
RadGrid1.DataBind();
}
}
0
Jakob
Top achievements
Rank 1
answered on 21 Sep 2011, 10:24 AM
Hi again
Tried your code once again, but only this time, I disabled viewstate on my radgrid, and now it works perfectly.
Thank you so much for your help :-)
Tried your code once again, but only this time, I disabled viewstate on my radgrid, and now it works perfectly.
Thank you so much for your help :-)