I am binding the RADGrid to a collection of business objects. These business objects implement an interface, that inherits another interface.
When I am trying to sort (or do any other operation) on a column bound to a property, that only exists on the base interface, I get this exception:
[IndexOutOfRangeException: Cannot find column ItemNumber.] System.Data.DataTable.ParseSortString(String sortString) +4826462 System.Data.DataView.CheckSort(String sort) +32 System.Data.DataView.set_Sort(String value) +128 Telerik.Web.UI.GridEnumerableFromDataView.PerformTransformation() +5028 Telerik.Web.UI.GridEnumerableFromDataView.TransformEnumerable() +41 Telerik.Web.UI.GridTableView.GetEnumerator(Boolean useDataSource, GridEnumerableBase resolvedDataSource, ArrayList dataKeysArray) +171 Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +861 Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +786 System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57 System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142 Telerik.Web.UI.GridTableView.PerformSelect() +28 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73 Telerik.Web.UI.GridTableView.DataBind() +354 Telerik.Web.UI.GridSortCommandEventArgs.ExecuteCommand(Object source) +326 Telerik.Web.UI.RadGrid.OnBubbleEvent(Object source, EventArgs e) +191 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +61 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +165 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
How do I get around this issue ?
This issue arises if I try to bind to IItemInterface instances and sort on the ItemNumber column, where IItemInterface is declared as follows:
public class Item : IItemInterface |
{ |
public string Name { get; set; } |
public string ItemNumber { get; set; } |
} |
public interface IBase |
{ |
string ItemNumber { get; set; } |
} |
public interface IItemInterface : IBase |
{ |
string Name { get; set; } |
} |
Thanks for your help,
/Dennis Riis