簡體   English   中英

GridControl中的顯示名稱

[英]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.

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