Как привязать сложный словарь к Gridview в asp.net?

Я использовал раннюю привязку dictionary<string, string> к gridview, чтобы показать текст URL и его HRef как ключ-значение, и это работает как шарм. Но так как я хочу заменить словарь этим:

dictionary<string, LinkInfo>

привязка идет не так! Должен ли я обрабатывать некоторые события, такие как onItemDataBound или что-то в этом роде? и структура LinkInfo:

public struct LinkInfo{
    public string href;
    public bool Enabled;
}

person Mehdi    schedule 06.06.2010    source источник


Ответы (1)


Да, вам необходимо подписаться на событие OnItemDataBound. Используйте поле шаблона, вставьте литерал с идентификатором, например «href».

В событии OnItemDataBound используйте

Literal _href = e.Row.FindControl("href") as Literal;  
if(_href != null)
{
  _href = ((LinkInfo)e.Row.DataItem).href;
}

Правка. Я написал статью, в которой эта тема более подробно рассматривается: http://www.tomot.de/en-us/article/7/asp.net/gridview-обзорразличныхспособовпривязкиданныхкстолбцам

person citronas    schedule 06.06.2010
comment
Я не хочу использовать поле шаблона, но вы показываете мне путь с помощью этого кода. Спасибо - person Mehdi; 07.06.2010