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>"; }}
