在ASP.NET中将DataGrid绑定到Dictionary

时间:2010-05-06 19:59:05

标签: asp.net asp.net-mvc data-binding

在ASP.NET中,将DataGrid绑定到对象列表非常容易。

我最终为列表中的每个对象添加一行,并且给定行中的任何单元格都绑定到相应对象的属性。

但是,假设我的对象的一个​​属性是字典,并且每个属性都应包含一个特定的键。有没有办法将我的DataGridColumns之一绑定到该字典键?

感谢。

3 个答案:

答案 0 :(得分:1)

如果为DataGrid.ItemDataBound添加处理程序,则可以从Dictionary中显式设置列值。最简单的例子:

protected void OnItemDataBound(object sender, DataGridItemEventArgs e)
{
    myclass mine = (myclass) e.Item.DataItem;

    int cellindex = 5;
    e.Item.Cells[cellindex].Text = mine.mydict["thekey"];
}

答案 1 :(得分:0)

我不熟悉DataGrid绑定的工作,但一般的绑定可以在任何公共属性上完成。尝试绑定Key

上的ValueDictionary

答案 2 :(得分:0)

另一个选项是向类中添加一个属性,该属性返回该特定键的值。

public string TheKey
{        
    get { return MyDictionary["thekey"]; }
}

(出于这个原因,那里的纯粹主义者可能不喜欢为你的对象添加一个属性,但这只是一个简单的解决方案。)