• 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转换为行对象是失败的。看明白没?

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


    */
  • 相关阅读:
    11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)
    10-UIKit(UIDatePicker、UIPickerView、UIWebView、Storyboard)
    09-UIKit(UICollectionViewController、UITabBarController)
    ios7 UITableView底线右移
    08-UIKit(UITableTableViewCell、自定义Cell、xcode调试)
    07-UIKit(tableview的编辑模式、accessoryView)
    06-UIKit(tableView数据模型)
    05-UIKit(UITableViewController)
    04-UIKit(UINavigationController、NSAttributeString、UIImageView)
    HDU 4422 采蘑菇的小女孩
  • 原文地址:https://www.cnblogs.com/Lin267307031/p/2950264.html
Copyright © 2020-2023  润新知