[英]Adding rows to DevExpress GridView
有人可以幫我這個嗎? 當常規GridView如此簡單時,為什么這么難。
我試圖以編程方式添加行。 在普通的GridView中,我只是調用gridView.Rows並從那里添加,但我在這里找不到該選項。
我嘗試創建一個DataTable,然后將其綁定到它,如下所示:
DataTable dt = new DataTable();
dt.Columns.Add("IP", Type.GetType("System.String"));
dt.Columns.Add("Port", Type.GetType("System.String"));
dt.Columns.Add("Username", Type.GetType("System.String"));
dt.Columns.Add("Password", Type.GetType("System.String"));
dt.Columns.Add("Working?", Type.GetType("System.Boolean"));
for (int i = 0; i < 20; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "Test";
dr[1] = "Test";
dr[2] = "Test";
dr[3] = "Test";
dr[4] = true;
dt.Rows.Add(dr);
}
gcProxies.DataSource = dt;
所有這一切都是在GridControl中添加空行。
有任何想法嗎?
您的問題是您在設計器中創建了一個列,然后您的代碼沒有覆蓋它。
除了將DataTable綁定到網格的數據外,還可以包括顯示任意數據或基於表達式顯示數據的未綁定列。 以下是創建未綁定列的基本示例: 如何:添加未綁定列
在您的示例中,您可以在設置數據源后添加未綁定列:
gcProxies.DataSource = dt;
// Create an unbound column.
DevExpress.XtraGrid.Columns.GridColumn unbColumn = gridView1.Columns.AddField("Total");
unbColumn.VisibleIndex = gridView1.Columns.Count;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
// Disable editing.
unbColumn.OptionsColumn.AllowEdit = false;
// Specify format settings.
unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
unbColumn.DisplayFormat.FormatString = "c";
gridView1.CustomUnboundColumnData += gridView1_CustomUnboundColumnData;
然后,這是填充未綁定列的事件:
void gridView1_CustomUnboundColumnData(object sender,
DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
if (e.Column.FieldName == "Total" && e.IsGetData)
e.Value = 100;
}
這些示例可以讓您開始自定義您的確切解決方案。
我遇到了類似於你的問題,我通過添加解決了這個問題
gcProxies.PopulateColumns();
還有一件事是DataSource被折舊,所以請切換到ItemSource。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.