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

Grid Custom Filter

1 Answer 75 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mattia
Top achievements
Rank 2
Mattia asked on 20 Mar 2014, 02:25 PM
Hi
I have this grid

<telerik:RadGrid ID="PriceListRadGrid" runat="server" OnNeedDataSource="PriceListRadGrid_NeedDataSource"
            EnableEmbeddedSkins="False" AllowPaging="True" OnItemCommand="PriceListRadGrid_ItemCommand"
            AllowSorting="True" OnItemCreated="PriceListRadGrid_ItemCreated" OnItemInserted="PriceListRadGrid_ItemInserted"
            OnPreRender="PriceListRadGrid_PreRender" OnItemDataBound="PriceListRadGrid_ItemDataBound"
            AllowFilteringByColumn="True" CellSpacing="0" Culture="it-IT" GridLines="None" ShowGroupPanel="True"
            Skin="MySkin" meta:resourcekey="PriceListRadGridResource1">
            <PagerStyle Mode="NextPrevAndNumeric" />
            <MasterTableView AutoGenerateColumns="False" EditMode="InPlace" DataKeyNames="Id"
                CommandItemDisplay="Top">
                <CommandItemSettings AddNewRecordText="" RefreshText="" />
                <Columns>                   
 ....
  <telerik:GridTemplateColumn UniqueName="UnitOfMeasurementColumn"
                                                HeaderText="Currency"          
                                                DataField="UnitOfMeasurementId"
                                                SortExpression="UnitOfMeasurement.CodeAndDescription"                                               
                                                meta:resourcekey="GridTemplateColumnResource2">
 
                        <FilterTemplate>
                                <telerik:RadComboBox ID="UnitComboFilter"
                                                    runat="server"
                                                    DataTextField="Code"
                                                    DataValueField="Id"
                                                    AppendDataBoundItems="true"
                                                    SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("UnitOfMeasurementColumn").CurrentFilterValue %>'
                                                    OnClientLoad="ComboAlternativeRowColor"
                                                    OnClientSelectedIndexChanged="UnitComboFilter_SelectedIndexChanged"
                                                    Width="80px">                                                   
                                </telerik:RadComboBox>
                       
                            <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
                                <script type="text/javascript">
                                    function UnitComboFilter_SelectedIndexChanged(sender, args) {
                                        var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                        tableView.filter("UnitOfMeasurementId", args.get_item().get_value(), "EqualTo");
                                    
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
 
                        <ItemTemplate>
                            <asp:Label runat="server" ID="UnitOfMeasurementCodeLbl" Text='<%# DataBinder.Eval(Container.DataItem,"UnitOfMeasurement.CodeAndDescription") %>'
                                meta:resourcekey="UnitOfMeasurementCodeLblResource1"></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadComboBox runat="server" DataTextField="CodeAndDescription" DataValueField="Id"
                                OnClientLoad="ComboAlternativeRowColor" ID="UnitOfMeasurementCombo" Width="200px"
                                Culture="it-IT" meta:resourcekey="UnitOfMeasurementComboResource1">
                            </telerik:RadComboBox>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>
 </Columns>          
            </MasterTableView>           
             <ClientSettings AllowDragToGroup="True">
                <ClientEvents OnRowDblClick="RowDblClick"></ClientEvents>               
            </ClientSettings>
            <GroupingSettings CaseSensitive="False" ShowUnGroupButton="True" />
            <FilterMenu EnableEmbeddedSkins="False">
            </FilterMenu>
            <HeaderContextMenu EnableEmbeddedSkins="False">
            </HeaderContextMenu>
        </telerik:RadGrid>

Here I fill the filter combobox

protected void PriceListRadGrid_ItemDataBound(object sender, GridItemEventArgs e)
        {
            //popolo i filtri personalizzati
            if (e.Item is GridFilteringItem)
            {
                GridFilteringItem item = (GridFilteringItem)e.Item;
             
                RadComboBox unit = (RadComboBox)item.FindControl("UnitComboFilter");
                unit.DataSource = m_List.Select(p => p.UnitOfMeasurement).Distinct().ToList().OrderBy(p => p.Code);
                unit.DataBind();
                unit.Items.Insert(0, new RadComboBoxItem("", ""));
 
            }
....
}

When I choose an item from the filter combobox nothing happens


Thanks

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 21 Mar 2014, 04:37 AM
Hi Stefania,

Please remove the SelectedValue of the RadComboBox filter in aspx page and add from code behind as follows and check if it helps.

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
  if (e.Item is GridFilteringItem)
  {
   GridFilteringItem item = (GridFilteringItem)e.Item;
   RadComboBox unit = (RadComboBox)item.FindControl("UnitComboFilter");
    //Your code
   unit.SelectedValue = item.OwnerTableView.GetColumn("UnitOfMeasurementColumn").CurrentFilterValue;
  }
}

Thanks,
Princy
Tags
Grid
Asked by
Mattia
Top achievements
Rank 2
Answers by
Princy
Top achievements
Rank 2
Share this question
or