EnableHeaderContextFilterMenu Filter Strange after rebind Grid

2 posts, 0 answers
  1. chameleon
    chameleon avatar
    2 posts
    Member since:
    Nov 2015

    Posted 13 Nov 2015 Link to this post

    <telerik:RadGrid ID="rgridUserList" runat="server" GridLines="None" OnNeedDataSource="rgridUserList_NeedDataSource"
                       AllowSorting="true" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true"
                       AllowFilteringByColumn="true" EnableLinqExpressions="false" OnItemCommand="rgridUserList_ItemCommand"
                       Skin="Telerik" OnItemDataBound="rgridUserList_ItemDataBound">
                       <ClientSettings>
                           <Selecting AllowRowSelect="True"></Selecting>
                       </ClientSettings>
                       <GroupingSettings CaseSensitive="false"></GroupingSettings>
                       <MasterTableView DataKeyNames="UserID" CommandItemDisplay="Top" IsFilterItemExpanded="false"
                           EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowFilteringByColumn="true">
                           <Columns>
                               <telerik:GridTemplateColumn HeaderText="No." UniqueName="Number" ItemStyle-CssClass="NumberColomn">
                                   <HeaderStyle Width="30px" HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblGridNumber" runat="server" Text='<%# (rgridUserList.PageSize*rgridUserList.CurrentPageIndex)+ Container.ItemIndex + 1 %>'></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="User Name" UniqueName="UserName" SortExpression="UserName"
                                   CurrentFilterFunction="Contains" DataField="UserName" >
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Left" />
                                   <ItemTemplate>
                                       <asp:HyperLink ID="hlUserName" Font-Underline="true" runat="server"><%# DataBinder.Eval(Container, "DataItem.UserName") %></asp:HyperLink>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Full Name" UniqueName="FullName" SortExpression="FullName"
                                   CurrentFilterFunction="Contains" DataField="FullName">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Left" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblFullName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FullName") %>'></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Email" UniqueName="Email" SortExpression="Email"
                                   CurrentFilterFunction="Contains" DataField="Email">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Left" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblEmail" SkinID="EmailColor" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="User Group" UniqueName="UserGroupItem" SortExpression="UserGroupItem"
                                   DataField="UserGroupItem" CurrentFilterFunction="Contains" >
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Left" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblUserGroup" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserGroupItem") %>'></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Is Active" UniqueName="IsActive" SortExpression="IsActive"
                                   HeaderStyle-HorizontalAlign="Center" >
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:CheckBox ID="cbIsActive" runat="server" Enabled="false" Checked='<%# DataBinder.Eval(Container, "DataItem.IsActive") %>' />
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Created By" UniqueName="CreatedBy" SortExpression="CreatedBy"
                                    HeaderStyle-HorizontalAlign="Center" DataField="CreatedByName" CurrentFilterFunction="Contains">
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblCreatedBy" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CreatedByName") %>'></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Last Access" UniqueName="LastAccess" SortExpression="LastAccess"
                                    HeaderStyle-HorizontalAlign="Center" DataField="LastAccess" CurrentFilterFunction="Contains">
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblLastAccess" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.LastAccess","{0:dd-MM-yyyy hh:mm tt}") %>' />
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Need Approval" Visible="false" UniqueName="IsNeedApproval"
                                   HeaderStyle-HorizontalAlign="Center" SortExpression="IsNeedApproval">
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:CheckBox ID="cbIsNeedApproval" runat="server" Checked='<%# DataBinder.Eval(Container, "DataItem.IsNeedApproval") %>'>
                                       </asp:CheckBox>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                               <telerik:GridTemplateColumn HeaderText="Action" UniqueName="Action">
                                   <HeaderStyle Width="100px" HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <asp:ImageButton ID="btnEdit" runat="server" SkinID="Edit" CommandName="Edit" Visible='<%# !(bool)DataBinder.Eval(Container, "DataItem.IsNeedApproval") %>' />
                                       <asp:ImageButton ID="btnDelete" runat="server" SkinID="Delete" CommandName="Delete"
                                           Visible='<%# !(bool)DataBinder.Eval(Container, "DataItem.IsNeedApproval") %>'
                                           OnClientClick="javascript:return confirm('Are you sure want to delete?')" />
                                       <asp:Label ID="lblNeedApproval" runat="server" Text='Need Approval' Visible='<%# DataBinder.Eval(Container, "DataItem.IsNeedApproval") %>'
                                           ForeColor="Red"></asp:Label>
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                           </Columns>
                           <CommandItemTemplate>
                               <telerik:RadToolBar ID="RadTBUser" runat="server" SkinID="NewAndExport" />
                           </CommandItemTemplate>
                           <ExpandCollapseColumn Visible="False" Resizable="False">
                               <HeaderStyle Width="20px" />
                           </ExpandCollapseColumn>
                           <CommandItemSettings ExportToPdfText="Export to PDF" />
                           <RowIndicatorColumn Visible="False">
                               <HeaderStyle Width="20px" />
                           </RowIndicatorColumn>
                           <EditFormSettings>
                               <EditColumn FilterControlAltText="Filter EditCommandColumn column">
                               </EditColumn>
                           </EditFormSettings>
                           <PagerStyle AlwaysVisible="True" Mode="NextPrevNumericAndAdvanced"></PagerStyle>
                       </MasterTableView>
                       <HeaderStyle HorizontalAlign="Center" />
                       <FilterMenu EnableImageSprites="False">
                       </FilterMenu>
                       <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
                       </HeaderContextMenu>
                   </telerik:RadGrid>

     

     

    That is my code..

    Scenario:

    -I have 12 records ( 0.12Records.JPG)

    -I try to filter (1.Search.JPG) The filter is fine. 

    -Then I click Search button to rebind grid's datasource (2.Search.JPG)

    -The right click filter on header , the text is cleared. But, the records not showing all records. I try to type something, the filter is not working.

    -After I click Search Button (again) the filter is fine again.

     

    What inside button search is:

    private void BindGrid()
       {
           try
           {
               sessUserCollection = null;
               rgridUserList.Rebind();
           }
           catch (Exception Ex)
           {
               throw Ex;
           }
       }

     

    So, the problem is when I click once the search button (rebind grid) the filter is crippled.

    I need to click it twice, so the database hitted twice.

     

     

     

    Any ways to solve this problem?
    Am I missing something?

     

     

  2. chameleon
    chameleon avatar
    2 posts
    Member since:
    Nov 2015

    Posted 19 Nov 2015 in reply to chameleon Link to this post

    anyone?
Back to Top