我試過了下面的代碼,但datagridview中沒有顯示任何內容。將一組數據行綁定到datagridview
有什麼建議嗎?
string strFilterOption = "dtcolnPurchaseProductExpProductNo=270";
dgvProductExp.DataSource = dtPurchaseProductExp.Select(strFilterOption);
我試過了下面的代碼,但datagridview中沒有顯示任何內容。將一組數據行綁定到datagridview
有什麼建議嗎?
string strFilterOption = "dtcolnPurchaseProductExpProductNo=270";
dgvProductExp.DataSource = dtPurchaseProductExp.Select(strFilterOption);
從MSDN
DataGridView的類支持標準的Windows窗體 數據綁定模型。這意味着數據源可以是 實現以下接口之一的任何類型:
IList接口,包括一維數組。
IListSource接口,如 的DataTable和DataSet類。
IBindingList接口,如 的BindingList類。
IBindingListView接口,如 BindingSource類。
由於數組綁定的默認行爲,因此無法爲DataSource屬性設置Datatable.Select方法將返回的Datarows數組。從this post:
主要之一是,該對象實現IList或者是 1維數組。事情是,數組綁定的默認行爲爲 - Reflection。數組中的對象類型是 ,反映它可以發現其未編入索引的公共屬性,而 具有可以在網格中表示的值類型。這些 屬性然後在數據綁定發生時用作字段。 由於數組中的數據類型是DataRow,因此有六個公共的 屬性:HasErrors,Item,ItemArray,RowError,RowState和 表。但Item是一個索引屬性,ItemArray的類型爲 Object(),它不能在gridview中顯示,因此這兩個 屬性將被忽略,其他四個將顯示在網格中。
因此,另一種方法將創建一個新的DataTable,使用Clone方法從DataTable源獲取模式,並使用DataRow數組填充新的DataTable。
string strFilterOption = "dtcolnPurchaseProductExpProductNo=270";
DataTable cloneTable;
cloneTable = dtPurchaseProductExp.Clone();
foreach (DataRow row in dtPurchaseProductExp.Select(strFilterOption))
{
cloneTable.ImportRow(row);
}
dgvProductExp.DataSource = cloneTable;
或者,您還可以通過BindingSource對象執行綁定並使用其Filter屬性。
您是否測試過dgvProductExp.DataSource.Tables(0).Rows.Count
? ..如果它表明0
這就是爲什麼..
或者你確定這不是
string strFilterOption = "dtcolnPurchaseProductExpProductNo='270'";
?
不是一個非常完整的描述。但你有沒有試過'dgvProductExp.Databind()'?如果是這樣,請發佈代碼和問題的完整說明。 – saamorim