[英]Display Name in GridControl
我有一些簡單的實體。
public class Customer
{
[Key]
public int ID { get; set; }
public String Name { get; set; }
}
public class Provider
{
[Key]
public int ID { get; set; }
public String Name { get; set; }
}
我在用
Devexpress LinqServerModeSource
Devexpress Grid
我在運行時設置數據源。
網格列標題為“ ID”和“名稱” ,但如果我設置了數據源客戶,我想查看“客戶ID”和“客戶名稱”,或者如果我設置了數據源提供者,則希望查看“ Provider ID”和“ Provider Name”
所以有什么辦法嗎? 注釋或vs.
將Gridview的Auto“ AutoGenerateColumns”屬性設置為true。 然后為數據源分配列名。
在使用Devexpress時,必須在Page Init中設置數據源。 這不是完美/完整的代碼,但是您可以從此代碼塊中獲得啟發。
protected void Page_InIt(object sender, EventArgs e)
{
BindGrid("Customers");
}
private void BindGrid(string strDataSourceType)
{
var customers, providers = null;
if (strDataSourceType == "Customers")
{
customers = (from x in Context.Customers
select new
{
CustomerId = x.ID,
CustomerName = x.Name
}).ToList();
}
else if (strDataSourceType == "Providers")
{
providers = (from x in Context.Providers
select new
{
ProviderId = x.ID,
ProviderName = x.Name
}).ToList();
}
grid.DataSource = customers / providers;
grid.AutoGenerateColumns = true;
grid.DataBind();
}
現在,由於您只想更改列名,則可以使用這種方式(設置標題屬性),
foreach (DevExpress.Web.ASPxGridView.GridViewDataColumn column in grid.Columns)
{
if (column.FieldName == "Name")
column.Caption = "Customer Name";
if (column.FieldName == "ID")
column.Caption = "Customer ID";
}
如果您知道列順序,則可以在不使用foreach循環的情況下設置標題。 你可以這樣做,
grid.Columns [0] .Caption =“客戶名稱”; grid.Columns [1] .Caption =“客戶ID”;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.