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

Filtering in rad grid.

8 Answers 469 Views
Grid
This is a migrated thread and some comments may be shown as answers.
yogesh
Top achievements
Rank 1
yogesh asked on 10 Apr 2011, 02:50 PM

hi telerik team,

i am unable to do filtering in rad grid.Can you please tell me what i am doing wrong.

<telerik:RadGrid runat="server" ID="filteringRadGrid" OnNeedDataSource="filteringRadGrid_NeedDataSource"
AutoGenerateColumns="false">
<MasterTableView EditMode="InPlace" AllowFilteringByColumn="true">
<Columns>
<telerik:GridTemplateColumn HeaderText="Date" UniqueName="ShippedDate">
<ItemTemplate>
<asp:Label ID="dateLabel" runat="server" Text='<%#Eval("date")%>'></asp:Label>
</ItemTemplate>
<FilterTemplate>
  <telerik:RadDatePicker ID="filterRadDatePicker" runat="server" Width="100px" ClientEvents-OnDateSelected="DateSelected" />
<telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">

<script type="text/javascript">
function DateSelected(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");

var date = FormatSelectedDate(sender);
//alert(date);
tableView.filter("date", date, "EqualTo");
}
function FormatSelectedDate(picker) {
var date = picker.get_selectedDate();
var dateInput = picker.get_dateInput();
var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());

return formattedDate;
}
</script>

</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Date Time">
<ItemTemplate>
<asp:Label ID="dateTimeLabel" runat="server" Text='<%#Eval("dateTime") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Compliance Status">
<ItemTemplate>
<telerik:RadComboBox ID="compStatusRadComboBox" runat="server">
<Items>
<telerik:RadComboBoxItem Value="0" Text="ao" />
<telerik:RadComboBoxItem Value="1" Text="bo" />
<telerik:RadComboBoxItem Value="2" Text="co" />
</Items>
</telerik:RadComboBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>

protected void filteringRadGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("date");
dt.Columns.Add("dateTime");
dt.Columns.Add("cs");
dt.Rows.Add("1/12/2001", "1/12/2001 00:00:03 AM", "ao");
dt.Rows.Add("1/12/2002", "1/12/2002 00:00:06 AM", "co");
dt.Rows.Add("1/12/2003", "1/12/2003 00:00:09 AM", "bo");
filteringRadGrid.DataSource = dt;

}

8 Answers, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 11 Apr 2011, 04:31 PM
Hello,

To allow filtering in template columns, you need to set the DataField property of the template column to the field you want to use for filtering. You can review the help article below for more information:
http://www.telerik.com/help/aspnet-ajax/grdimplementingfilteringfortemplatecolumns.html

Kind regards,
Pavlina
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
yogesh
Top achievements
Rank 1
answered on 11 Apr 2011, 04:45 PM

hi palvina,

i have set the datafield property but still nothing happens.

Please note that my custom filter is in the first field (date column). what i need is that when i select the date in the custom filter my grid should refresh and bring on only those date which are equal to the dates set in the custom date filter.

Need the help urgently.......

<telerik:RadGrid runat="server" ID="filteringRadGrid" OnNeedDataSource="filteringRadGrid_NeedDataSource"
AutoGenerateColumns="false">
<MasterTableView EditMode="InPlace" AllowFilteringByColumn="true">
<Columns>
<telerik:GridTemplateColumn HeaderText="Date" UniqueName="ShippedDate" DataField="date">
<ItemTemplate>
<asp:Label ID="dateLabel" runat="server" Text='<%#Eval("date")%>'></asp:Label>
</ItemTemplate>
<FilterTemplate>
<telerik:RadDatePicker ID="filterRadDatePicker" runat="server" Width="100px" ClientEvents-OnDateSelected="DateSelected"/>
<telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">

<script type="text/javascript">
function DateSelected(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");

var date = FormatSelectedDate(sender);
//alert(date);
tableView.filter("date", date, "EqualTo");
}
function FormatSelectedDate(picker) {
var date = picker.get_selectedDate();
var dateInput = picker.get_dateInput();
var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());

return formattedDate;
}
</script>

</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Date Time">
<ItemTemplate>
<asp:Label ID="dateTimeLabel" runat="server" Text='<%#Eval("dateTime") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Compliance Status">
<ItemTemplate>
<telerik:RadComboBox ID="compStatusRadComboBox" runat="server">
<Items>
<telerik:RadComboBoxItem Value="0" Text="ao" />
<telerik:RadComboBoxItem Value="1" Text="bo" />
<telerik:RadComboBoxItem Value="2" Text="co" />
</Items>
</telerik:RadComboBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>

protected void filteringRadGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("date");
dt.Columns.Add("dateTime");
dt.Columns.Add("cs");
dt.Rows.Add("1/12/2001", "1/12/2001 00:00:03 AM", "ao");
dt.Rows.Add("1/12/2002", "1/12/2002 00:00:06 AM", "co");
dt.Rows.Add("1/12/2003", "1/12/2003 00:00:09 AM", "bo");
filteringRadGrid.DataSource = dt;

}

0
Pavlina
Telerik team
answered on 13 Apr 2011, 02:20 PM
Hello,

Please refer to the second grid in the online example below, which demonstrates how you can filter date column:
http://demos.telerik.com/aspnet-ajax/grid/examples/programming/filtertemplate/defaultcs.aspx

Give it a try and let me know how it goes.

Best wishes,
Pavlina
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
yogesh
Top achievements
Rank 1
answered on 15 Apr 2011, 05:08 PM

hi pavlina ,

 its of no user plese see my code and tell me what 's is wrong.

Thank.s

0
yogesh
Top achievements
Rank 1
answered on 19 Apr 2011, 07:02 PM

hi team telerik,

please give me some solution so that i can fix the issue.

thanks.

0
Jayesh Goyani
Top achievements
Rank 2
answered on 20 Apr 2011, 07:56 AM
hi Yogesh

  <telerik:GridTemplateColumn HeaderText="Date" UniqueName="ShippedDate" DataField="date">
                        <ItemTemplate>
                            <asp:Label ID="dateLabel" runat="server" Text='<%#Eval("date")%>'></asp:Label>
                        </ItemTemplate>
                        <FilterTemplate>
                            <telerik:RadDatePicker ID="filterRadDatePicker" runat="server" Width="100px" ClientEvents-OnDateSelected="DateSelected" />
                            <telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">
                               <script type="text/javascript">
                                   function DateSelected(sender, args) {
                                       var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
 
                                       var date = FormatSelectedDate(sender);

                                       tableView.filter("ShippedDate", date, "EqualTo");
                                   }                                    function FormatSelectedDate(picker) {                                        var date = picker.get_selectedDate();                                        var dateInput = picker.get_dateInput();                                        var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());                                        return formattedDate;                                    } </script>                             </telerik:RadScriptBlock>                         </FilterTemplate>                     </telerik:GridTemplateColumn>

..................................
issue is in this line  tableView.filter("ShippedDate", date, "EqualTo"); .
u write here datafield name inplace of column unique name.



Thanks,
Jayesh Goyani
0
yogesh
Top achievements
Rank 1
answered on 20 Apr 2011, 07:29 PM

hi jayesh,

nothing has helped...

i have already written

tableView.filter("date", date, "EqualTo");

here the first parameter date is my datafield.

The grid does not post back on setting the   date  in the filter column .

Please help .

Thanks.

0
Jayesh Goyani
Top achievements
Rank 2
answered on 21 Apr 2011, 09:42 AM
Hi yogesh,

the correct code is shown below.

<telerik:GridTemplateColumn HeaderText="Date" UniqueName="ShippedDate" DataField="date">
                        <ItemTemplate>
                            <asp:Label ID="dateLabel" runat="server" Text='<%#Eval("date")%>'></asp:Label>
                        </ItemTemplate>
                        <FilterTemplate>
                            <telerik:RadDatePicker ID="filterRadDatePicker" runat="server" Width="100px" ClientEvents-OnDateSelected="DateSelected" />
                            <telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">
                               <script type="text/javascript">
                                   function DateSelected(sender, args) {
                                       var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
 
                                       var date = FormatSelectedDate(sender);

                                       tableView.filter("ShippedDate", date, "EqualTo");
                                   }                                    function FormatSelectedDate(picker) {                                        var date = picker.get_selectedDate();                                        var dateInput = picker.get_dateInput();                                        var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());                                        return formattedDate;                                    } </script>                             </telerik:RadScriptBlock>                         </FilterTemplate>                     </telerik:GridTemplateColumn>




Thanks,
Jayesh Goyani
Tags
Grid
Asked by
yogesh
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
yogesh
Top achievements
Rank 1
Jayesh Goyani
Top achievements
Rank 2
Share this question
or