Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 94857

Ajaxfied RadGrid RadCombo FilterTemplate

$
0
0


I want to know how to implement custom filter in RadGrid.

I have a Ajaxfied RadGrid and datasource is binded in NeedDatasource event. The RadGrid has five columns..

In that, I want to change the filter of one of the column to selectable filter..

So, I added a FilterTemplate and added the RadComboBox inside to it..

Initially, I hardcoded all the RadComboBox item in the design time itself.. Binded a javascript to clientside_selectedchanged event.. This approach worked fine..

When I binded RadComboBox with collection (List) in the code behind.. The filtering didn't work.. I binded the RadComboBox in GridItemDataBound or GridItemCreated event.. But no luck..

Any help.. will be very much useful to me.. I spent nearly two days but I didn't any direction... I'm nearing to my deadline.. so I have no other option left out other than this forum..

Custom Filter Code

The following is sample code which I copied from my project and pasted here.. I have changed the field names alone..

Filter Template:

<telerik:GridBoundColumn DataField="DepartmentDescription" Groupable="true" HeaderText="Program" UniqueName="DepartmentDescription">

    <FilterTemplate>

        <telerik:RadComboBox ID="RadComboBoxDepartmentDescription" runat="server"

            AppendDataBoundItems="true"

            DataTextField="DepartDesc"

            DataValueField=" DepartDesc "

            OnClientSelectedIndexChanged="RadComboBoxDepartmentDescriptionIndexChanged"

            OnDataBound="RadComboBoxAllFilters_OnDataBound"

            SelectedValue='<%#TryCast(Container,GridItem).OwnerTableView.GetColumn("DepartmentDescription ").CurrentFilterValue%>'

            Width="100px">

            <Items>

                <telerik:RadComboBoxItem Text="All" Value="" />

            </Items>

        </telerik:RadComboBox>

        <telerik:RadScriptBlock ID="RadScriptBlockProgram" runat="server">

            <script type="text/javascript">



                function RadComboBoxDepartmentDescriptionIndexChanged(sender, args) {

                    var tableView = $find("<%# TryCast(Container,GridItem).OwnerTableView.ClientID%>");

                    tableView.filter("DepartmentDescription", args.get_item().get_value(), "EqualTo");

                }

            </script> 

        </telerik:RadScriptBlock>

    </FilterTemplate>

    <ItemStyle Wrap="False" />

    <HeaderStyle Wrap="false" />

</telerik:GridBoundColumn>





RadGrid DataBinding Code

protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{

(sender as RadGrid).DataSource = employeeList;  //This is a list of employee of values.. which comes from service layer.. of type .. List<Employee>

}



RadGrid UI Code


<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">

        <AjaxSettings>

            <telerik:AjaxSetting AjaxControlID="RadGrid1">

                <UpdatedControls>

                    <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl>

                </UpdatedControls>

            </telerik:AjaxSetting>

        </AjaxSettings>

    </telerik:RadAjaxManager>

    <div>

        <telerik:RadGrid runat="server" ID="RadGrid1" AllowPaging="True" AllowSorting="true"

            OnNeedDataSource="RadGrid1_NeedDataSource"

..other code I removed it.. like the grid events and bound columns definitions

        </telerik:RadGrid>



RadComboBox Filter DataBinding Code in the Code Behind:

Protected Sub RadGrid1_ItemDataBound(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound

If TypeOf e.Item Is Telerik.Web.UI.GridFilteringItem Then

    'Populate Filters by binding the combo to datasource

    Dim filteringItem As Telerik.Web.UI.GridFilteringItem = CType(e.Item, Telerik.Web.UI.GridFilteringItem)

    Dim myRadComboBox As Telerik.Web.UI.RadComboBox = DirectCast(filteringItem.FindControl("RadComboBoxDepartmentDescription"),Telerik.Web.UI.RadComboBox)



    myRadComboBox.DataSource = departmentList; //This is a collection which comes from service layer… and the type is List<Department>

    myRadComboBox.DataTextField = " DepartmentDescription"
    myRadComboBox.DataValueField = " DepartmentDescription"

    myRadComboBox.DataBind()

End If



Even I pasted the same code in ItemCreated Event as well but no luck…

 


Viewing all articles
Browse latest Browse all 94857

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>