2013-12-13 1 views
0

Я использую ASPxGridView, привязанный к XPODataSource с AutoGenerateColumns = true. Имя таблицы/класса источника данных задается с помощью кода, поэтому я не могу подготовить столбцы сетки в разметке (так как разные таблицы имеют разные имена столбцов).DataItemTemplate для динамически созданного столбца в ASPxGridView

Я хотел бы использовать DataItemTemplate для настройки конкретного столбца для каждой таблицы, но во всех примерах он используется внутри столбца, созданного в разметке (пример: http://demos.devexpress.com/aspxgridviewdemos/Templates/Template.aspx).

Как я могу создать и присвоить DataItemTemplate динамически созданный столбец?

ответ

1

Ответ здесь, должно быть гугле больше: http://www.devexpress.com/Support/Center/Example/Details/E293

В принципе, вы создаете шаблон как класс:

class MyHyperlinkTemplate : ITemplate { 
    public void InstantiateIn(Control container) { 
     ASPxHyperLink link = new ASPxHyperLink(); 
     GridViewDataItemTemplateContainer gridContainer = (GridViewDataItemTemplateContainer)container; 
     link.NavigateUrl = string.Format("~/details.aspx?Device={0}", gridContainer.KeyValue); 
     link.Text = string.Format("Get details about device {0}", gridContainer.KeyValue); 
     container.Controls.Add(link); 
    } 
} 

затем присвоить его колонке:

((GridViewDataColumn)ASPxGridView1.Columns["colItemTemplate"]).DataItemTemplate = new MyHyperlinkTemplate();