当前位置:  开发笔记 > 编程语言 > 正文

从网格视图中获取业务对象

如何解决《从网格视图中获取业务对象》经验,为你挑选了1个好方法。

究竟是什么e.Row.DataItem返回.. MSDN说.. 返回一个Object,表示GridViewRow对象绑定到的底层数据对象.

这是我的DataGrid ......

    
        
            
            
            
            
                
                    
                
            
        
    

然后我将它绑定到我的业务对象列表 ..在DataBound行事件中,我试试这个...

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        Patient p1 = (Patient)e.Row.DataItem;
        Label lbl = e.Row.FindControl("LblStatus") as Label;

        if (p1 == null)
        {
            throw new Exception("P1 is null");
        }

        if (p1.OpenItems.Count > 0)
        {
            lbl.Text = "Has open Items";
        }
        else
        {
            lbl.Text = "";
        }
    }

我得到异常P1为空 ......为什么这样......我错过了什么..

注意:可能有其他方法可以实现这一点,但我特别关注为什么我的p1为null ...并且有任何方法可以在绑定后从GridView 获取Patient对象.



1> mxmissile..:

也为页眉和页脚调用RowDataBound,你需要DataRow在调用之前确保你当前处于实际状态e.Row.DataItem:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {                
       if(e.Row.RowType != DataControlRowType.DataRow)
          return;

       Patient p1 = (Patient)e.Row.DataItem;

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有