簡體   English   中英

如何創建和綁定由數據庫表確定列的GridView?

[英]How to create and bind a GridView where the columns are determined by a database table?

我想創建一個GridView(最好是telerik),其中根據數據庫中的行生成和綁定列。 網格應如下所示: 在此處輸入圖片說明

這是有關數據庫設置的示例。 我有3個數據庫表,如下所示:

員工-員工姓名列表

國家-國家清單

EmployeeStates-聯接表,具有EmployeeID,StateID和boolean(選中或未選中)。

可以將新行添加到兩個數據庫表中,以使雇員列表和城市列表變長。 如何將其綁定到GridView?

不知道您是否仍然有此問題,但不久前我們已解決。 這並不簡單,但是可以做到。 我們的表格是針對治療部位(身體部位)和治療類型的,我們希望顯示一個網格,其中顯示所有可能的部位以及為相關患者打勾的部位。

獲取數據的服務器端查詢如下所示...

int systemID = 210;
var cross = TreatmentSites.Select(ts => new {
  TreatmentSiteID = ts.ID,
  TreatmentSiteName = ts.Description,
  Checked = string
    .Join("", TreatmentCheckTypes
              .OrderBy(tct => tct.ID)
              .Select(cs => SystemTreatmentSitesCheckeds
                .Any(s => s.Active
                       && s.SystemID == systemID
                       && s.TreatmentSiteID == ts.ID
                       && s.TreatmentCheckTypeID == cs.ID) ? "y" : "n"))
})
.ToArray();

這會拉出一個站點列表,其中nnyyn用於檢查類型的字符串形式為nnyyn的字符串。

Nest的工作是將其按摩到WPF可以使用的東西中。 為此,我們使用了以下代碼...

Dictionary<String, dynamic>[] data = new Dictionary<string, dynamic>[cross.Count()];
for (int crossN = 0; crossN < cross.Count(); crossN++) {
  var d = new Dictionary<String, dynamic>();
  d["TreatmentSiteID"] = cross[crossN].TreatmentSiteID;
  d["TreatmentSiteName"] = cross[crossN].TreatmentSiteName;
  for (int checktypeN = 0; checktypeN < treatmentCheckTypes.Count(); checktypeN++) {
    d["C" + checktypeN] = cross[crossN].Checked[checktypeN] == 'y';
  }
  data[crossN] = d;
}

這為我們提供了所需的數據。 這樣,WPF視圖就可以在代碼中將列添加到網格,然后將數據綁定到網格。

以上是基本思想。 有關其工作原理的更多詳細信息,請參見我的博客

希望能有所幫助。

如果您點擊此鏈接,則應該有足夠的示例以了解一些想法。 想點指向WPF telerik組件。

您可以將RadGridViewItemsSource屬性設置或綁定到IEnumerable<YourType> ,其中YourType是具有Employee,NJ,PA,RI和NY屬性的類。

或到DataTableDataView

您將必須編寫一個SQL查詢,該查詢從數據庫中選擇適當的數據,然后為每個返回的記錄創建YourType的實例,或者直接使用DataTable 關於如何與在線可用的數據庫進行通信的示例有很多: https : //msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter(v=vs.110).aspx

暫無
暫無

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

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