Requirements |
|||
|
|
||
.NET version 2.0 and Later |
|
||
Visual Studio version 2005 and later |
|
||
programming language c# |
|
||
|
|
PROJECT DESCRIPTION
This is a simple code which deals with using filtertemplate in the radgrid with grid being binded from the code behind using the Needdatasource event and the comboboxes being loaded using the sqldatasource
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
onneeddatasource
=
"RadGrid1_NeedDataSource"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
AllowSorting
=
"True"
>
<
MasterTableView
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"CountryID"
HeaderText
=
"MCountryID"
UniqueName
=
"column"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CountryName"
FilterListOptions
=
"VaryByDataType"
HeaderText
=
"CountryName"
UniqueName
=
"CountryName"
CurrentFilterFunction
=
"EqualTo"
>
<
FilterTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox1"
AppendDataBoundItems
=
"true"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("CountryName").CurrentFilterValue %>'
DataSourceID="SqlDataSource1"
DataTextField="CountryName" DataValueField="CountryName" runat="server"
AutoPostBack="True" Filter="Contains" MarkFirstMatch="True" OnClientSelectedIndexChanged="CountryIndexChanged">
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"All"
/>
</
Items
>
</
telerik:RadComboBox
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock3"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function CountryIndexChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("CountryName", args.get_item().get_value(), "EqualTo");
}
</
script
>
</
telerik:RadScriptBlock
>
</
FilterTemplate
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CodeX2"
HeaderText
=
"CodeX2"
UniqueName
=
"CodeX2"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
FilterTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox2"
DataSourceID
=
"SqlDataSource1"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("CodeX2").CurrentFilterValue %>' AppendDataBoundItems="true" DataTextField="CodeX2" OnClientSelectedIndexChanged="CodeX2IndexChanged" DataValueField="CodeX2" runat="server">
</
telerik:RadComboBox
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock5"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function CodeX2IndexChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("CodeX2", args.get_item().get_value(), "EqualTo");
}
</
script
>
</
telerik:RadScriptBlock
>
</
FilterTemplate
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CountryCode"
HeaderText
=
"CountryCode"
UniqueName
=
"CountryCode"
>
<
FilterTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox3"
DataSourceID
=
"SqlDataSource1"
DataTextField
=
"CountryCode"
AppendDataBoundItems
=
"true"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("CountryCode").CurrentFilterValue %>' OnClientSelectedIndexChanged="CountryCodeIndexChanged" DataValueField="CountryCode" runat="server">
</
telerik:RadComboBox
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock4"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function CountryCodeIndexChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("CountryCode", args.get_item().get_value(), "EqualTo");
}
</
script
>
</
telerik:RadScriptBlock
>
</
FilterTemplate
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:sql1_DB %>"
SelectCommand="SELECT [CountryName], [MCountryID], [CodeX2], [CountryCode], [DINCode] FROM [Countries]"></
asp:SqlDataSource
>
</
div
>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Telerik.Web.UI;
public partial class filtertemplate : System.Web.UI.Page
{
public static DataTable GetDataTable(string query)
{
string ConnString = ConfigurationManager.ConnectionStrings["sql1_DB"].ConnectionString;
SqlConnection conn = new SqlConnection(ConnString);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(query, conn);
DataTable myDataTable = new DataTable();
conn.Open();
try
{
adapter.Fill(myDataTable);
}
finally
{
conn.Close();
}
return myDataTable;
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = GetDataTable("select MCountryID,CountryName,CountryCode,DINCode from Countries");
}
protected void RadComboBox1_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
{
string filterExpression;
filterExpression = "[CountryName] = '" + e.Value + "'";
RadGrid1.MasterTableView.FilterExpression = filterExpression;
RadGrid1.MasterTableView.Rebind();
}
}