【发布时间】:2014-04-13 14:28:39
【问题描述】:
我尝试显示对象的集合 (IEnumerable)(通过 Linq to Sql 生成)。因此,我将 Gridviews DataSource 属性绑定到我的 Linq to SQL 方法生成的输出。在GridView 的SelectedIndexChanged 事件中,我尝试将选定的行DataItem 转换回我的原始对象,但最终得到null 值。
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
RlDataContext dc = new RlDataContext();
this.dgvReports.DataSource = dc.GetReports(1);
this.dgvReports.DataBind();
}
protected void dgvReports_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.dgvReports.SelectedIndex >= 0)
{
Report rpt = (Report)this.dgvReports.SelectedRow.DataItem;
}
}
GetReports的返回类型为ISingleResult<Report>
【问题讨论】:
-
如果我没记错的话,在 Page_Load 之后转发器的
DataItem将不再可用。因此,作为SelectedIndexChanged事件的一部分,DataItem将为空。不确定您是否可以对此做些什么(这就是为什么这是评论而不是答案)。一种选择是在初始DataBind期间构建要在本地保存的数据并在事件处理程序中使用它 -
请参考这个Link可能会帮助你..!