zoukankan      html  css  js  c++  java
  • Repeater 嵌套 绑定数据,嵌套的Repeater无法绑定的问题

    Repeater 嵌套 绑定数据,嵌套的Repeater无法绑定的问题
    今天做绑定遇到了这个么个问题,绑定的事件ItemDataBound()跟之前的并没有

    改动,为什么会出现绑定失败的问题呢?要是你也有这个疑问,就一起来学习一

    下吧。
    首先展示一下外层Repeater的数据源绑定。
    drpClass1.DataSource=WebBLL.Tbl_ClassManager.GetDataTableByPID(1);
    drpClass1.DataBind();
    注意此处的数据源一般为list或者datatable,2中数据源格式。
    再来看一下外层Repeater的ItemDataBound()的方法。
    protected void repYiliaoFenlei_ItemDataBound(object sender,

    RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType

    == ListItemType.AlternatingItem)
                {
                    Repeater rep_sub = e.Item.FindControl

    ("repYiliaoFenlei_sub") as Repeater;
                    if (rep_sub == null) { return; }
                    System.Data.DataRowView dr = e.Item.DataItem as

    System.Data.DataRowView;
                    if (dr == null) { return; }
                    rep_sub.DataSource =

    WebBLL.Tbl_ClassManager.GetTbl_ClassAllByPID(Convert.ToInt32(dr

    ["ID"]));
                    rep_sub.DataBind();
                }
            } 
    我想这些东西就不用解释了吧。
    问题来了,不管是你 外层的repeater有没有数据,内层的repeater虽然不会报错

    ,但是,数据绑定不上。为什么嘛?
    步入调试环节吧。
    。。。。。。
    经调试,  Repeater rep_sub = e.Item.FindControl("repYiliaoFenlei_sub")

    as Repeater;
    这一句话没问题啊。rep_sub 也能找到啊。不为null啊
    OK,下一步,,,e.item.dataitem 也没问题啊。也能找到值啊
    接下来,,不会啊。为什么会 进入 dr=null呢。。
    as导致的?
    来看看吧。
    。。。
    果然,System.Data.DataRowView; 这个地方是转换失败的?
    为什么呢?
    。。。。。
    自己仔细看看
    外层的repeater绑定的数据源是list的时候,这个地方的dr 是一直为null的。
    但是数据源是datatable的时候,确不会出现这样的问题.
    为什么呢?个人的理解:DataTable是表,里面有行列数据,一般是从数据库里取

    出来的数据绑定过来的。利于筛选和汇总。话说。datatable就是一个二维表。
    二list是一些对象的集合或者是实体对象。list用起来,遍历,增加,减少都比

    较方便。这个list 只是一个一个的被对象化的数据模型。
    所以。list转换为行对象是失败的。看明白没?

    /*
    以上内容为本人业余时间整理,部分内容来源网络,如有错误欢迎各位批评指正。


    */
  • 相关阅读:
    SQL Server循环插入
    【转】Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联
    【转】iis7下站点日志默认位置
    如何设置输入IP地址就直接访问到某一个网站
    面向接口编程
    Lambda表达式
    关于单体化和属性文件的说明
    cesium-长度测量和面积测量
    Cesium官方教程13--Cesium和Webpack
    Cesium官方教程12--材质(Fabric)
  • 原文地址:https://www.cnblogs.com/Lin267307031/p/2950264.html
Copyright © 2011-2022 走看看