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 に答える