Why doesn't sorting work when you bind an IEnumerable<T> collection that uses the yield keyword? Do I have to implement a custom paging solution? I am using 2012 Q1 SP1 controls.
<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource"> <MasterTableView AllowSorting="true" AllowPaging="true" PageSize="20" AllowFilteringByColumn="true" /></telerik:RadGrid>using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Data.Linq;using System.Linq;using Telerik.Web.UI;public class Class1{ public Class1(int i) { this.Column1 = i.ToString(); this.Column2 = (200 - i).ToString(); this.Column3 = System.Text.Encoding.Default.GetString(new[] { System.Convert.ToByte(65 + (i % 26)) }); } public string Column1 { get; set; } public string Column2 { get; set; } public string Column3 { get; set; } public static IEnumerable<Class1> GetData() { List<Class1> data = new List<Class1>(); for (int i = 0; i < 200; i++) { yield return new Class1(i); } }}public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { //RadGrid1.DataSource = Class1.GetData().ToArray(); //works RadGrid1.DataSource = Class1.GetData(); //doesn't work }}