簡體   English   中英

將LINQ查詢結果用於GridControl C#的數據源

[英]Using LINQ query result for data source for GridControl c#

我在靜態類中有這樣的功能

public static IEnumerable<MyObject> getFilteredList(int docType)
{
    var fItems = from i in list
                 where i.DocType == docType
                 select i;

    return fItems;
}

當我以這種形式使用返回的列表作為網格的數據源時,例如:

GridControl.DataSource = staticClass.getFilteredList(10)

Grids DataSource屬性為null。 您能解釋一下為什么會這樣嗎?

編輯:列表變量是List,其中包含DocType = 10的元素。Items包含元素。

你應該用

GridControl.DataSource = staticClass.getFilteredList(10).ToList();

創建一個新的List實例以綁定到您的網格。

另一種方法是使用BindingList ,它完全支持數據綁定並為您提供有用的事件,如ListChangedAddingNew

var list = new BindingList(staticClass.getFilteredList(10).ToList());

GridControl.DataSource = list;

嘗試

GridControl.DataSource = staticClass.getFilteredList(10).ToList();

因為必須從IList繼承DataSource

您可以嘗試使用ToList()

GridControl.DataSource = staticClass.getFilteredList(10).ToList();
GridControl.DataBind();
public static IEnumerable<MyObject> getFilteredList(int docType)
    {
        var fItems = from i in list
                     where i.DocType.docTypeId == docType
                     select i;

        return fItems;
    }

如果我錯了,請糾正我,但是現在看來,您好像正在將一個int與DocType類進行比較。 如果不是這種情況,那么您的查詢可能只是返回一個空集,因為它找不到匹配的任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM