Hi can anyone tell me how to implement google like filtering for gridboundcolumn's are using filtertemplate
i found an example which is similar to my requirement click here
i want to use common method and javascript and want to filter the record based on filter column selected, in above example its filtering for only 1 column [ City dropdown]. i want to use same concept for all the bound columns
i found an example which is similar to my requirement click here
i want to use common method and javascript and want to filter the record based on filter column selected, in above example its filtering for only 1 column [ City dropdown]. i want to use same concept for all the bound columns
6 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 25 Aug 2011, 10:46 AM
Hello Giri,
Check the following demo which implements similar functionality.
Grid / Filter Templates
Thanks,
Shinu.
Check the following demo which implements similar functionality.
Grid / Filter Templates
Thanks,
Shinu.
0
Hiren
Top achievements
Rank 1
answered on 25 Aug 2011, 11:37 AM
That is not what i want, check this link
http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid
I want to implement same functionality for existing bound columns
http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid
I want to implement same functionality for existing bound columns
0
Hi Giri,
You could achieve your goal, by using FilterTemplate with ComboBox and use the logic from google like filtering demo. Here you could find demo and here is the online documentation about FilterTemplate.
Kind regards,
Pavlina
the Telerik team
You could achieve your goal, by using FilterTemplate with ComboBox and use the logic from google like filtering demo. Here you could find demo and here is the online documentation about FilterTemplate.
Kind regards,
Pavlina
the Telerik team
Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>
0
Hiren
Top achievements
Rank 1
answered on 26 Aug 2011, 07:30 AM
Hi Pavlina,
I had tried that example but it not working as i expect. Here is my code which i had written
ASCX File
ASCX.cs file
When i try to filter on one column it works properly, when i try to filter on second column after filtering 1st column it doesn't bind the data to grid. And let me know how to filter Other datatype like DateTime, Integer. Want Google Like filter. combo box should show "Loading" status message when i request any item from filtering combo.
Check the attached images.
Reply asap
I had tried that example but it not working as i expect. Here is my code which i had written
ASCX File
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="GoogleFilterSample2.ascx.cs" Inherits="GoogleFilterSample2" %> <div> <telerik:RadGrid runat="server" EnableLinqExpressions="false" AllowFilteringByColumn="true" ID="RadGridUserControl" GridLines="None" OnNeedDataSource="RadGridUserControl_NeedDataSource"> <MasterTableView AutoGenerateColumns="False" DataKeyNames="EmployeeID"> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="EmployeeID" DataType="System.Int32" HeaderText="EmployeeID" ReadOnly="True" SortExpression="EmployeeID" UniqueName="EmployeeID" AllowFiltering="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Title" HeaderText="Title" SortExpression="Title" UniqueName="Title"> <FilterTemplate> <telerik:RadComboBox runat="server" ID="FilterCombo" AutoPostBack="true" ShowToggleImage="false" MarkFirstMatch="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedTitle" OnItemsRequested="FilterCombo_ItemsRequested"> </telerik:RadComboBox> </FilterTemplate> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="LastName" HeaderText="LastName" SortExpression="LastName" UniqueName="LastName"> <FilterTemplate> <telerik:RadComboBox ID="RcbLastName" EnableLoadOnDemand="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedLN" runat="server" OnItemsRequested="RcbLastName_ItemsRequested" ShowToggleImage="false" MarkFirstMatch="true"> </telerik:RadComboBox> </FilterTemplate> <ItemTemplate> <%# Eval("LastName")%> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" UniqueName="FirstName"> <FilterTemplate> <telerik:RadComboBox ID="RcbFirstName" EnableLoadOnDemand="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedFN" runat="server" OnItemsRequested="RcbFirstName_ItemsRequested" ShowToggleImage="false" MarkFirstMatch="true"> </telerik:RadComboBox> </FilterTemplate> <ItemTemplate> <%# Eval("FirstName")%> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="TitleOfCourtesy" HeaderText="TitleOfCourtesy" SortExpression="TitleOfCourtesy" UniqueName="TitleOfCourtesy"> <FilterTemplate> <telerik:RadComboBox ID="RcbTitleOfCourtesy" EnableLoadOnDemand="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedTitleOfCourtesy" runat="server" OnItemsRequested="RcbTitleOfCourtesy_ItemsRequested" ShowToggleImage="false" MarkFirstMatch="true"> </telerik:RadComboBox> </FilterTemplate> <ItemTemplate> <%# Eval("TitleOfCourtesy")%> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="BirthDate" HeaderText="BirthDate" SortExpression="BirthDate" UniqueName="BirthDate" DataType="System.DateTime"> <FilterTemplate> <telerik:RadComboBox ID="RcbBirthDate" EnableLoadOnDemand="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedBirthDate" runat="server" OnItemsRequested="RcbBirthDate_ItemsRequested" ShowToggleImage="false" MarkFirstMatch="true"> </telerik:RadComboBox> </FilterTemplate> <ItemTemplate> <%# Eval("BirthDate")%> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="HireDate" DataType="System.DateTime" HeaderText="HireDate" SortExpression="HireDate" UniqueName="HireDate"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Address" HeaderText="Address" SortExpression="Address" UniqueName="Address"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="City" HeaderText="City" SortExpression="City" UniqueName="City"> <FilterTemplate> <telerik:RadComboBox ID="RcbCity" EnableLoadOnDemand="true" OnClientSelectedIndexChanged="onClientSelectedIndexChangedCity" runat="server" OnItemsRequested="RcbCity_ItemsRequested" ShowToggleImage="false" MarkFirstMatch="true"> </telerik:RadComboBox> </FilterTemplate> <ItemTemplate> <%# Eval("City")%> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid><br /> <asp:Button ID="clrFilters" runat="server" Text="Clear Filter" OnClick="clrFilters_Click" /> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function onClientSelectedIndexChangedCity(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("City", eventArgs.get_item().get_text(), "StartsWith"); } function onClientSelectedIndexChangedLN(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("LastName", eventArgs.get_item().get_text(), "StartsWith"); } function onClientSelectedIndexChangedFN(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("FirstName", eventArgs.get_item().get_text(), "StartsWith"); } function onClientSelectedIndexChangedTitle(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("Title", eventArgs.get_item().get_text(), "StartsWith"); } function onClientSelectedIndexChangedTitleOfCourtesy(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("TitleOfCourtesy", eventArgs.get_item().get_text(), "StartsWith"); } function onClientSelectedIndexChangedBirthDate(sender, eventArgs) { var value = eventArgs.get_item().get_value(); $find("<%= RadGridUserControl.ClientID %>").get_masterTableView().filter("BirthDate", eventArgs.get_item().get_text(), "StartsWith"); } </script> </telerik:RadCodeBlock> </div> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using System.Data; using System.Data.SqlClient; using System.Configuration; public partial class GoogleFilterSample2 : System.Web.UI.UserControl { public DataTable dt; protected void Page_Load(object sender, EventArgs e) { } protected void clrFilters_Click(object sender, System.EventArgs e) { ClearFilter(); } private void ClearFilter() { foreach (GridColumn column in RadGridUserControl.MasterTableView.Columns) { column.CurrentFilterValue = string.Empty; column.CurrentFilterFunction = GridKnownFunction.NoFilter; } RadGridUserControl.MasterTableView.FilterExpression = string.Empty; RadGridUserControl.MasterTableView.Rebind(); } protected void RcbCity_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "City"; (o as RadComboBox).DataTextField = "City"; (o as RadComboBox).DataSource = GetDataTable("City", e.Text); (o as RadComboBox).DataBind(); } protected void RcbLastName_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "LastName"; (o as RadComboBox).DataTextField = "LastName"; (o as RadComboBox).DataSource = GetDataTable("LastName", e.Text); (o as RadComboBox).DataBind(); } protected void RcbFirstName_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "FirstName"; (o as RadComboBox).DataTextField = "FirstName"; (o as RadComboBox).DataSource = GetDataTable("FirstName", e.Text); (o as RadComboBox).DataBind(); } protected void FilterCombo_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "Title"; (o as RadComboBox).DataTextField = "Title"; (o as RadComboBox).DataSource = GetDataTable("Title", e.Text); (o as RadComboBox).DataBind(); } protected void RcbTitleOfCourtesy_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "TitleOfCourtesy"; (o as RadComboBox).DataTextField = "TitleOfCourtesy"; (o as RadComboBox).DataSource = GetDataTable("TitleOfCourtesy", e.Text); (o as RadComboBox).DataBind(); } protected void RcbBirthDate_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { ClearFilter(); (o as RadComboBox).DataTextField = "BirthDate"; (o as RadComboBox).DataTextField = "BirthDate"; (o as RadComboBox).DataSource = GetDataTable("BirthDate", e.Text); (o as RadComboBox).DataBind(); } public DataTable GetDataTable(string columnName, string searchString) { String myQuery = string.Empty; if (!columnName.Equals("All")) myQuery = "SELECT DISTINCT " + columnName + " FROM Employees WHERE " + columnName + " LIKE '" + searchString + "%'"; else myQuery = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City] FROM [Employees]"; String ConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand(myQuery, conn); DataTable myDataTable = new DataTable(); conn.Open(); try { adapter.Fill(myDataTable); } finally { conn.Close(); } return myDataTable; } protected void RadGridUserControl_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { dt = GetDataTable("All", string.Empty); RadGridUserControl.DataSource = dt; } } When i try to filter on one column it works properly, when i try to filter on second column after filtering 1st column it doesn't bind the data to grid. And let me know how to filter Other datatype like DateTime, Integer. Want Google Like filter. combo box should show "Loading" status message when i request any item from filtering combo.
Check the attached images.
Reply asap
0
Hello Giri,
Please find attached to this message a sample working project which handles the desired functionality. Give it a try and let me know if it works as you expected.
Kind regards,
Pavlina
the Telerik team
Please find attached to this message a sample working project which handles the desired functionality. Give it a try and let me know if it works as you expected.
Kind regards,
Pavlina
the Telerik team
Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>
0