将对象属性绑定到特定的Telerik RadGridView列

时间:2012-03-20 22:41:24

标签: c# asp.net .net visual-studio telerik

我在NeedDataSource事件中定义了Telerik RadGridView控件的数据源。有问题的数据源是IEnumerable对象集合。

比方说,例如,RadGridView中的列顺序是Title | Description | Date。如果我的收藏中有以下物品......

class Obj{

  public DateTime Date {get;set;}
  public string Title {get;set;}
  public string Description {get;set;}

}

如何使用RadGridView1.DataSource();确保以正确的顺序将对象属性值分配给RadGridView列?

2 个答案:

答案 0 :(得分:1)

我不确定我完全理解你的问题。你在使用Auto generate columns at runtime吗?如果不是:列顺序由声明性地定义,如下所示:

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource">
        <MasterTableView DataKeyNames="ObjId">
                 <Columns>
                        <telerik:GridBoundColumn UniqueName="Date" HeaderText="Date" DataField="Date" DataFormatString="{0:M/dd/yyyy}">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn UniqueName="Title" HeaderText="Title" DataField="Title">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn UniqueName="Description" HeaderText="Description" DataField="Description">
                        </telerik:GridBoundColumn>
                    </Columns>
    </MasterTableView>
    </telerik:RadGrid1>

请注意,DataField告诉RadGrid要使用哪个对象属性。如果我完全错过了你的问题,请告诉我。

答案 1 :(得分:0)

如果您要自动生成列并希望以编程方式对它们重新排序,则可以使用所讨论的SwapColumns方法here。列应按字母顺序自动添加,因此只需调用以下内容即可。

grid.MasterTableView.SwapColumns("Date","Title");

我可以将它放在DataBound事件处理程序中。