2017-04-07 19 views
2

コンマ区切りを実行した後に複数の文字列を取得しています。次に、私はそれをgridviewにバインドしたい。しかし、それはエラーがスローされます。リストアイテムをグリッドビューにバインドする方法

以下

A field or property with the name _barcodes was not found on the selected data source.

はコードです:

private void RetrieveScannedBarcodes() 
////code to retrieve the barcodes 
    foreach (var item in ScannedBarcodes) 
    { 
     _barcodes.AddRange(item.Split(',')); 
     foreach (var b in _barcodes) 
     { 
      gvScannedBarcodes.DataSource = b; 
      gvScannedBarcodes.DataBind(); 
     } 
    } 

そして、GridViewのコード:

<asp:GridView ID="gvScannedBarcodes" runat="server" AllowSorting="true" 
    AutoGenerateColumns="false" PagerSettings-Mode="NumericFirstLast" PageSize="25" 
    Width="741px"> 
    <Columns> 
     <asp:BoundField DataField="_barcodes" HeaderText="Barcodes" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="50" /> 
    </Columns> 
</asp:GridView> 

ヘルプの任意の種類が理解されるであろう。前もって感謝します。

答えて

2

A field or property with the name _barcodes was not found on the selected data source.

あなたは_barcodesという名前の列またはプロパティを持っていListDataTableようにGridViewのデータソースの代わりに、コレクションとして文字列を結合しています。

カンマで区切られたバーコード文字列を含むScannedBarcodesのリストがあります。そのリストのすべてのバーコードをGridViewにバインドすることをお勧めします。今度は、ScannedBarcodesからいくつかのコレクションにあるすべてのバーコードに_barcodesという列を付ける必要があります。

あなたはSelectManySelectを使用して、すべてのバーコードを取得し、次のように列名_barcodesを持つ匿名オブジェクトリストに結果を置くためにLINQクエリを使用することができます。

gvScannedBarcodes.DataSource = ScannedBarcodes.SelectMany(s=>s.Split(',') 
           .Select(b=>new {_barcodes = b})); 
gvScannedBarcodes.DataBind(); 

次の例を参照してください。

List<string> list = new List<string>(new string []{"1,2,3","4,5,6"}); 
gvScannedBarcodes.DataSource = list.SelectMany(l=>l.Split(',') 
           .Select(b=>new {_barcodes = b})); 
gvScannedBarcodes.DataBind(); 
+0

あなたは私の日を保存しました...ありがとうございます – Arka

+0

あなたを歓迎して、嬉しいです。 – Adil

0

ListをGridViewに直接バインドできます。

gvScannedBarcodes.DataSource = ScannedBarcodes; 
gvScannedBarcodes.DataBind(); 

DataFieldは、クラスのプロパティと一致する必要があります。

class Barcode 
{ 
    public string myBarcode { get; set; } 
} 

<asp:BoundField DataField="myBarcode" 
関連する問題