1

我有一个自定义对象如下

public partial class _AccessionType
{
    private string accessionIdField;
    private string docUrlField;
    /// <remarks/>
    public string AccessionId
    {
        get
        {
            return this.accessionIdField;
        }
        set
        {
            this.accessionIdField = value;
        }
    }
    public string DocUrl
    {
        get
        {
            return docUrlField;
        }
        set
        {
            docUrlField = value;
        }
    }
}

上述对象用作 DataGridView 的 DataSource。我想将上述对象转换为 DataRowView。

我该怎么做 ??

4

1 回答 1

1

您需要创建一个 _AccessionType 列表并将其分配给网格视图的 DataSource 属性。

List<_AccessionType> accessionTypes= new List<_AccessionType>();    
// Add objects to the list
gridView1.DataSource = accessionTypes;   
gridView1.DataBind();

在 gridView1 的设计器中,您需要右键单击 > 编辑列并添加绑定列。为每个绑定列提供一个合适的 HeaderText 并在 DataField 中分配所需的 _AccessionType 成员属性(例如 DocUrl)

您无法从 gridView.DataSource 将对象检索回 List<_AccessionType>,甚至无法从 GridViewRow 检索到 _AccessionType。为了取回网格视图行的值,您需要在网格视图中为需要取回的值定义数据键。

例如

<asp:GridView ID="gridView1" runat="server" 
            AutoGenerateColumns="False" DataKeyNames="AccessionId, DocUrl" EnableViewState="true"> 
... 
</asp:GridView>

稍后在代码中,您可以在循环通过 DataGrid 或在相关的数据网格事件处理程序中检索这些值:

foreach (GridViewRow accessionRow in this.gridView1.Rows)
{
    int accessionID = Convert.ToInt32(gridView1.DataKeys[accessionRow.RowIndex]["AccessionId"]);
}
于 2009-11-17T12:21:35.123 回答