protected void ReList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                
                ((Label)e.Item.FindControl("LaReal")).Text = ((QualityControl.Model.T_ROL_Regulatory)e.Item.DataItem).RealName;
                
            }
上面的是代码,我是仿照公司以前项目的写法写的,但是到我这就报错了。。实在是找不到原因

解决方案 »

  1.   

    ((Label)e.Item.FindControl("LaReal")).Text = ((System.Data.DataRowView)e.Item.DataItem).RealName;
      

  2.   

    这些写不对,后面根本就没有RealName的提示。点不出来
      

  3.   

    如果ReList的DataSource是DataTable,那么e.Item.DataItem应为DataRowView类型。试试先将DataTable转换成IList<T_ROL_Regulatory>,再绑定到ReList
      

  4.   

    在上家公司习惯了用DataTable,这家公司都是用的List<>,头说让我按自己的写法去写,但是按自己的写法有好多不兼容得地方,所以仿照他们以前的代码外加自己的习惯写法。结果绑定数据时就是用的DataSet,结果报错了。。
    按照4L的说法,改过来就对了,4L能否详细讲解一下,或者提供点这方面的资料也行多谢了
      

  5.   

    QualityControl.Model.T_ROL_Regulatory从名字上看,这个应该是你的Model层的一个实体对象
    e.Item.DataItem这个类型是System.Data.DataRowView的一种,当然不能强转
    .RealName是实体类里面的一个属性,你得找到DataRowView里它相对应的数据字段,或者用列索引访问
    ((Label)e.Item.FindControl("LaReal")).Text = ((System.Data.DataRowView)e.Item.DataItem)["数据字段名"].ToString();
      

  6.   

    或者你取数据的时候就用List<T>装载
      

  7.   

    转换 DataBinder.Eval(Container.dataitem,"");
    转换成你的实体类对象再点属性