将自定义对象转换为 DataRowView C# WinForms

发布于 2024-08-11 15:55:00 字数 612 浏览 2 评论 0原文

我有一个自定义对象,如下所示

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 的数据源。 我想将上面的对象转换为DataRowView。

我该怎么办?

I have a custom object as follows

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;
        }
    }
}

The above object is used as DataSource for DataGridView.
I want to convert the above object to DataRowView.

How can I do it ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

べ映画 2024-08-18 15:55:00

您需要创建 _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"]);
}

You need to create a list of _AccessionType and assign it to the DataSource property of the grid view.

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

In the designer for gridView1, you need to right click > Edit Columns and add Bound columns. For each bound column give a suitable HeaderText and in the DataField assign the required member property of _AccessionType (e.g. DocUrl)

You cannot retrieve the object from gridView.DataSource back into List<_AccessionType> or even from the GridViewRow into _AccessionType. Inorder to get the values for a grid view row back, you need to define data keys in the grid view for the values you need to retrieve back.

e.g.

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

Later in the code, you can retrieve back these values when you loop through the DataGrid or in a related data grid event handler:

foreach (GridViewRow accessionRow in this.gridView1.Rows)
{
    int accessionID = Convert.ToInt32(gridView1.DataKeys[accessionRow.RowIndex]["AccessionId"]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文