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

Filter row disappears after filtering

2 Answers 129 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Matt
Top achievements
Rank 1
Matt asked on 23 Dec 2014, 03:36 PM
Hi, hows it going?

I have a RadGrid control (2014.3.1024.45) that has paging, filtering, sorting and editing by template enabled. If I enter a filter value, the filter row in the grid disappears after the post back. The user is then unable to remove/change the filtering. Here my code:

<telerik:RadGrid runat="server" ID="rgdAddresses" AutoGenerateColumns="false" ShowStatusBar="true" AllowSorting="True" AllowFilteringByColumn="true"
        OnItemCommand="rgdAddresses_ItemCommand"
        OnNeedDataSource="rgdAddresses_NeedDataSource"
        OnInit="rgdAddresses_Init"
        OnItemDataBound="rgdAddresses_ItemDataBound"
        OnSortCommand="rgdAddresses_SortCommand">
        <MasterTableView DataKeyNames="Id, STACode" CommandItemDisplay="Top">
            <CommandItemSettings ShowExportToWordButton="true" ShowExportToExcelButton="true"
                ShowExportToCsvButton="true" ShowExportToPdfButton="false"
                ShowRefreshButton="false" ShowAddNewRecordButton="true" AddNewRecordText="New STA Address" />
            <Columns>
                <telerik:GridEditCommandColumn ButtonType="ImageButton" ItemStyle-Width="20px"  HeaderText="Edit" UniqueName="Edit" />
                <telerik:GridBoundColumn UniqueName="STACode" HeaderText="STA Code" DataField="STACode"  AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="Name" HeaderText="Name" DataField="Name" AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="AddressLine1" HeaderText="Address Line 1" DataField="AddressLine1" AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="AddressLine2" HeaderText="Address Line 2" DataField="AddressLine2" Visible="false" />
                <telerik:GridBoundColumn UniqueName="AddressLine3" HeaderText="Address Line 3" DataField="AddressLine3" Visible="false" />
                <telerik:GridBoundColumn UniqueName="AddressLine4" HeaderText="Address Line 4" DataField="AddressLine4" Visible="false" />
                <telerik:GridBoundColumn UniqueName="City" HeaderText="City" DataField="City" AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="Postcode" HeaderText="Postcode" DataField="Postcode" AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="CountryCode" HeaderText="Country Code" DataField="CountryCode" Visible="false" />
                <telerik:GridBoundColumn UniqueName="TRNNumber" HeaderText="TRN Number" DataField="TRNNumber" AllowFiltering="true" />
                <telerik:GridBoundColumn UniqueName="DepotNumber" HeaderText="Depot Number" DataField="DepotNumber" Visible="false" />
                <telerik:GridBoundColumn UniqueName="DeliveryDayIndicator" HeaderText="Delivery Day Indicator" DataField="DeliveryDayIndicator"  />
                <telerik:GridTemplateColumn HeaderText="Active" UniqueName="Active" HeaderStyle-Width="30px" ItemStyle-HorizontalAlign="Center">                   
                    <ItemTemplate>
                        <asp:Image ID="imgActive" runat="server" ImageUrl="<%# GetBindingActiveImage() %>" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridBoundColumn UniqueName="ActiveExport" HeaderText="Active" DataField="Active" Visible="false" />
                <telerik:GridTemplateColumn HeaderText="Mixed Marker" UniqueName="MixedMarker" HeaderStyle-Width="30px" ItemStyle-HorizontalAlign="Center">
                    <ItemTemplate>
                        <asp:Image ID="imgMixedMarker" runat="server" ImageUrl="<%# GetBindingMixedMarkerImage() %>" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridBoundColumn UniqueName="MixedMarkerExport" HeaderText="Mixed Marker" DataField="MixedMarker" Visible="false" />
                 
            </Columns>
            <EditFormSettings EditFormType="Template">
                <FormTemplate>
                    <table class="tableStyle">
                        <tr>
                            <td colspan="5">
                                <asp:Label ID="lblInstruction" runat="server" CssClass="subTitle" Text='<%# (Container is GridEditFormInsertItem) ? "Add a new STA Address" : "Edit existing STA Address" %>' />
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 100px">
                                <asp:Label ID="lblSTACode" runat="server" CssClass="labelStyle" Text="STA Code:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtSTACode" runat="server" CssClass="textBoxStyle" Text='<%# Bind("STACode") %>' MaxLength="30"  TabIndex="1"/>
                            </td>
                            <td style="width: 30px"></td>
                            <td style="width: 120px">
                                <asp:Label ID="lblActive" runat="server" CssClass="labelStyle" Text="Active:" />
                            </td>
                            <td>
                                <asp:CheckBox ID="chkActive" runat="server" Checked='<%# (Container is GridEditFormInsertItem) ? true : Eval("Active")  %>' TabIndex="9" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblName" runat="server" CssClass="labelStyle" Text="Name:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtName" runat="server" CssClass="textBoxStyle" Text='<%# Bind("Name") %>' MaxLength="50" TabIndex="2" />
                            </td>
                            <td></td>
                            <td>
                                <asp:Label ID="lblTRNNumber" runat="server" CssClass="labelStyle" Text="TRN Number:" />
                            </td>
                            <td>
                               <asp:TextBox ID="txtTRNNumber" runat="server" CssClass="textBoxStyle" Text='<%# Bind("TRNNumber") %>' MaxLength="6" TabIndex="10" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblAddressLine1" runat="server" CssClass="labelStyle" Text="Address Line 1:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtAddressLine1" runat="server" CssClass="textBoxStyle" Text='<%# Bind("AddressLine1") %>' MaxLength="50" TabIndex="2" />
                            </td>
                            <td></td>
                            <td>
                                <asp:Label ID="lblDepotNumber" runat="server" CssClass="labelStyle" Text="Depot Number:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtDepotNumber" runat="server" CssClass="textBoxStyle" Text='<%# Bind("DepotNumber") %>' MaxLength="5" TabIndex="11"/>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblAddressLine2" runat="server" CssClass="labelStyle" Text="Address Line 2:"  />
                            </td>
                            <td>
                                <asp:TextBox ID="txtAddressLine2" runat="server" CssClass="textBoxStyle" Text='<%# Bind("AddressLine2") %>' MaxLength="30" TabIndex="3" />
                            </td>
                            <td></td>
                            <td>
                                <asp:Label ID="lblMixedMarker" runat="server" CssClass="labelStyle" Text="Mixed Marker:" />
                            </td>
                            <td>
                                <asp:Label ID="lblMixedMarkerValue" runat="server" CssClass="labelStyle" Text='<%# (Container is GridEditFormInsertItem) ? "True" : Eval("MixedMarker") %>' />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblAddressLine3" runat="server" CssClass="labelStyle" Text="Address Line 3:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtAddressLine3" runat="server" CssClass="textBoxStyle" Text='<%# Bind("AddressLine3") %>' MaxLength="30" TabIndex="4"/>
                            </td>
                            <td></td>
                            <td>
                                <asp:Label ID="lblDeliveryDay" runat="server" CssClass="labelStyle" Text="Delivery Day Indicator:" />
                            </td>
                            <td>
                                <asp:Label ID="lblDeliveryDayValue" runat="server" CssClass="labelStyle" Text='<%# (Container is GridEditFormInsertItem) ? "0" : Eval("DeliveryDayIndicator") %>' />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblAddressLine4" runat="server" CssClass="labelStyle" Text="Address Line 4:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtAddressLine4" runat="server" CssClass="textBoxStyle" Text='<%# Bind("AddressLine4") %>' MaxLength="30" TabIndex="5" />
                            </td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblCity" runat="server" CssClass="labelStyle" Text="City:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtCity" runat="server" CssClass="textBoxStyle" Text='<%# Bind("City") %>' MaxLength="30" TabIndex="6" />
                            </td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblPostcode" runat="server" CssClass="labelStyle" Text="Postcode:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtPostcode" runat="server" CssClass="textBoxStyle" Text='<%# Bind("Postcode") %>' MaxLength="10" TabIndex="7" />
                            </td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblCountryCode" runat="server" CssClass="labelStyle" Text="Country Code:" />
                            </td>
                            <td>
                                <asp:TextBox ID="txtCountryCode" runat="server" CssClass="textBoxStyle" Text='<%# Bind("CountryCode") %>' MaxLength="5" TabIndex="8" />
                            </td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
 
                    </table>
                    <table class="tableStyle">
                        <tr>
                            <td>
                                <telerik:RadButton ID="btnSave" runat="server" Text="Save"
                                    CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' />
                            </td>
                            <td>
                                <telerik:RadButton ID="btnCancel" runat="server" Text="Cancel" CausesValidation="false" CommandName="Cancel" />
                            </td>
                        </tr>
                    </table>
                </FormTemplate>
            </EditFormSettings>
        </MasterTableView>
    </telerik:RadGrid>


What am I doing wrong?

Thanks in advance,

Matt

2 Answers, 1 is accepted

Sort by
0
Accepted
Eyup
Telerik team
answered on 26 Dec 2014, 09:01 AM
Hi Matt,

This issue is very strange, indeed. Can you check whether you are not hiding the filter item on the code-behind using the Visible or IsFilterItemExpanded properties?

I've created a sample RadGrid web site using the provided mark-up to test the described behavior. On my side the filtering works as expected. Please run the attached application and let me know about the result from your end.

Regards,
Eyup
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.

 
0
Matt
Top achievements
Rank 1
answered on 05 Jan 2015, 10:58 AM
Hi Eyup,

Found it. My ItemCommand c# method had a bug! I perform a switch on the e.CommandName and I have a default case that sets e.Item.Expanded = false;.

I've added;

case RadGrid.FilterCommandName
{
     // Do nothing
      break;
}

and fixed this problem.

Thanks for pointing me in the right direction.
Matt 

Tags
Grid
Asked by
Matt
Top achievements
Rank 1
Answers by
Eyup
Telerik team
Matt
Top achievements
Rank 1
Share this question
or