Hi,
I'am using the RadGrid with a GridDateTimeColumn with rangefiltering. The custom lay-out is to put both calender filters next to each other. I need to display them below each other and therefor I've used the solution to rearange them in the ItemDataBound event.
However when I use the nested view in the grid, the filter resets to it's original lay-out.
The problem is the nestedview triggers the databound event with the GridNestedViewItem and not the GridFilteringItem.
Could you please help?
Code:
<
telerik:RadGrid
ID
=
"rgdLaadOrder"
runat
=
"server"
CellSpacing
=
"0"
DataSourceID
=
"qOverview"
GridLines
=
"None"
Skin
=
"AlfonsFreriks"
EnableEmbeddedSkins
=
"false"
PageSize
=
"10"
ClientSettings-EnableRowHoverStyle
=
"True"
AllowPaging
=
"true"
OnItemCommand
=
"rgdLaadOrder_ItemCommand"
Width
=
"1124px"
OnInit
=
"rgdLaadOrder_Init"
AllowFilteringByColumn
=
"True"
AutoGenerateColumns
=
"False"
EnableLinqExpressions
=
"False"
OnItemDataBound
=
"rgdLaadOrder_ItemDataBound"
OnItemCreated
=
"rgdLaadOrder_ItemCreated"
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
/>
<
ExportSettings
OpenInNewWindow
=
"true"
FileName
=
"Export"
>
<
Pdf
ContentFilter
=
"Ascii85"
BorderType
=
"AllBorders"
PageWidth
=
"297mm"
PageHeight
=
"210mm"
>
<
PageHeader
>
<
LeftCell
TextAlign
=
"Left"
/>
<
MiddleCell
TextAlign
=
"Left"
/>
<
RightCell
TextAlign
=
"Left"
/>
</
PageHeader
>
</
Pdf
>
</
ExportSettings
>
<
ClientSettings
EnableRowHoverStyle
=
"True"
EnablePostBackOnRowClick
=
"True"
>
<
Selecting
AllowRowSelect
=
"true"
/>
</
ClientSettings
>
<
MasterTableView
NoMasterRecordsText
=
"Er zijn geen laadorders te tonen"
AutoGenerateColumns
=
"false"
TableLayout
=
"Auto"
HierarchyLoadMode
=
"ServerOnDemand"
DataKeyNames
=
"LaadOrderNummer, LAADADRESNUMMER, LOSADRESNUMMER"
>
<
NestedViewSettings
DataSourceID
=
"qItem"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"LaadOrderNummer"
MasterKeyField
=
"LaadOrderNummer"
/>
<
telerik:GridRelationFields
DetailKeyField
=
"LaadAdresNummer"
MasterKeyField
=
"LAADADRESNUMMER"
/>
<
telerik:GridRelationFields
DetailKeyField
=
"LosAdresNummer"
MasterKeyField
=
"LOSADRESNUMMER"
/>
</
ParentTableRelation
>
</
NestedViewSettings
>
<
NestedViewTemplate
>
<
asp:Repeater
ID
=
"rptAgendaItem"
runat
=
"server"
DataSourceID
=
"qItem"
>
<
ItemTemplate
>
<
div
class
=
"cellLinks"
>
<%# Eval("Titel") %>
</
div
>
<
div
class
=
"cellRechts"
>
<%# Eval("Waarden") %>
</
div
>
</
ItemTemplate
>
<
SeparatorTemplate
>
<
br
style
=
"clear:both;"
/>
</
SeparatorTemplate
>
</
asp:Repeater
>
</
NestedViewTemplate
>
<
Columns
>
<
telerik:GridTemplateColumn
AllowFiltering
=
"false"
UniqueName
=
"ncr"
HeaderText
=
"NCR"
Display
=
"false"
>
<
HeaderStyle
Width
=
"28px"
/>
<
ItemStyle
Width
=
"28px"
/>
<
ItemTemplate
>
<
asp:Image
runat
=
"server"
ID
=
"imgStatus"
ImageUrl
=
"~/Assets/Images/status/INFO_RED.png"
Visible='<%# (int)Eval("AANTALNCR") > 0 %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"LaadOrderNummer"
HeaderText
=
"Nummer"
UniqueName
=
"LaadOrderNummer"
AllowFiltering
=
"false"
Display
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"LaadInfoDefinitiefJN"
HeaderText
=
"LaadInfoDefinitiefJN"
UniqueName
=
"LaadInfoDefinitiefJN"
AllowFiltering
=
"false"
Display
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"LosInfoDefinitiefJN"
HeaderText
=
"LosInfoDefinitiefJN"
UniqueName
=
"LosInfoDefinitiefJN"
AllowFiltering
=
"false"
Display
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"LAADADRESNUMMER"
HeaderText
=
"LAADADRESNUMMER"
UniqueName
=
"LAADADRESNUMMER"
AllowFiltering
=
"false"
Display
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"LOSADRESNUMMER"
HeaderText
=
"LOSADRESNUMMER"
UniqueName
=
"LOSADRESNUMMER"
AllowFiltering
=
"false"
Display
=
"false"
/>
<
telerik:GridTemplateColumn
AllowFiltering
=
"false"
UniqueName
=
"link"
HeaderText
=
""
Exportable
=
"false"
>
<
HeaderStyle
Width
=
"44px"
/>
<
ItemTemplate
>
<
asp:Image
runat
=
"server"
ID
=
"imgLink"
ImageUrl
=
"~/Assets/Images/afje_wit.png"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"OPDRACHTNUMMERKLANT"
HeaderText
=
"Klant ref."
UniqueName
=
"OPDRACHTNUMMERKLANT"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
FilterControlWidth
=
"100%"
>
<
HeaderStyle
Width
=
"180px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"LAADORDERDISPLAYNUMMER"
HeaderText
=
"Laadordernr"
UniqueName
=
"LAADORDERDISPLAYNUMMER"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
FilterControlWidth
=
"100%"
>
<
HeaderStyle
Width
=
"120px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"LAADDATUM"
HeaderText
=
"Laaddatum"
UniqueName
=
"LAADDATUM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
DataType
=
"System.DateTime"
DataFormatString
=
"{0:dd-MM-yyyy}"
FilterControlWidth
=
"106px"
EnableTimeIndependentFiltering
=
"true"
EnableRangeFiltering
=
"true"
>
<
HeaderStyle
Width
=
"160px"
/>
</
telerik:GridDateTimeColumn
>
<
telerik:GridBoundColumn
DataField
=
"LAADADRESPLAATS"
HeaderText
=
"Laadplaats"
UniqueName
=
"LAADADRESPLAATS"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
FilterControlWidth
=
"100%"
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"LOSDATUM"
HeaderText
=
"Losdatum"
UniqueName
=
"LOSDATUM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
DataType
=
"System.DateTime"
DataFormatString
=
"{0:dd-MM-yyyy}"
FilterControlWidth
=
"106px"
EnableTimeIndependentFiltering
=
"true"
EnableRangeFiltering
=
"true"
>
<
HeaderStyle
Width
=
"160px"
/>
</
telerik:GridDateTimeColumn
>
<
telerik:GridBoundColumn
DataField
=
"LOSADRESPLAATS"
HeaderText
=
"Losplaats"
UniqueName
=
"LOSADRESPLAATS"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
FilterControlWidth
=
"100%"
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
AllowFiltering
=
"false"
UniqueName
=
"ncr"
HeaderText
=
"NCR"
Exportable
=
"false"
>
<
HeaderStyle
Width
=
"40px"
/>
<
ItemTemplate
>
<
asp:ImageButton
runat
=
"server"
ID
=
"imgStatusRed"
ImageUrl
=
"~/Assets/Images/status/bullet_ball_glass_red.png"
Visible='<%# (int)Eval("AANTALNCR") > 0 %>' CommandName="NCR_Click" />
<
asp:Image
runat
=
"server"
ID
=
"imgStatusGreen"
ImageUrl
=
"~/Assets/Images/status/bullet_ball_glass_green.png"
Visible='<%# (int)Eval("AANTALNCR") == 0 %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
PagerStyle
PageSizes
=
"10, 25, 50, 75, 100"
PagerTextFormat="{4} Er zijn <strong>{5}</
strong
> laadorders die overeenkomen met de zoekcriteria"
PageSizeLabelText="Resultaten per pagina:" AlwaysVisible="true" />
</
MasterTableView
>
</
telerik:RadGrid
>
protected void rgdLaadOrder_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridFilteringItem)
{
GridFilteringItem filterItem = e.Item as GridFilteringItem;
(filterItem["LAADDATUM"].Controls[0] as LiteralControl).Text = "<
span
style
=
'width:45px; display:inline-block;'
>" + WebTranslate.GetTranslation("rgdLaadOrderVanFilter") + "</
span
>";
(filterItem["LAADDATUM"].Controls[3] as LiteralControl).Text = "<
br
/><
span
style
=
'width:45px; display:inline-block;'
>" + WebTranslate.GetTranslation("rgdLaadOrderTotFilter") + "</
span
>";
(filterItem["LOSDATUM"].Controls[0] as LiteralControl).Text = "<
span
style
=
'width:45px; display:inline-block;'
>" + WebTranslate.GetTranslation("rgdLaadOrderVanFilter") + "</
span
>";
(filterItem["LOSDATUM"].Controls[3] as LiteralControl).Text = "<
br
/><
span
style
=
'width:45px; display:inline-block;'
>" + WebTranslate.GetTranslation("rgdLaadOrderTotFilter") + "</
span
>";
}
}