不会吧。。哥private PagedDataSource pds()
    {
        string connstring = ConfigurationManager.ConnectionStrings["WHConn"].ConnectionString;
        SqlConnection con = new SqlConnection(connstring);        DataSet ds = new DataSet();
        SqlDataAdapter sda = new SqlDataAdapter("select * from gzhz order by 时间1 desc", con);
        sda.Fill(ds, "gz");
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables["gz"].DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = 15;
        pds.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
        return pds;
    }

解决方案 »

  1.   

    没有看你的链接。如果你只是想跟踪到底是什么数据绑定到Repeater上了,完全没有必要去反过来遍历Repeater,只要注册处理它的ItemDataBound事件就可以了。比如你可以仅仅写一行代码、把 e.Item 的内容赋值给当前对象的一个 private 变量里,然后在其它地方去读取这个变量的值。
      

  2.   

    是每一行有两个按钮,我是想通过遍历repeater来判断当前登录的名字是否与帖子的作者一样,还有是否提交时间超过了24小时,然后给出相应的操作权限。应该是比较笨的方法,但是目前只想到这个比较好的,嘿嘿。另外,我有点担心,如果我的数据有10多万条的话,那岂不是遍历的时间会很长?当然,这是后话。目前的问题是为什么最后的一条数据总是不受控?
      

  3.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
    foreach (RepeaterItem ite in Repeater1.Items)
                {
    ------------------
    这个写法肯定是不对的。但最后一行不受控制的原因现在 还看不出来,你可以断点调试一下
      

  4.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)这个判断语句是写在 Repeater 的 ItemDataBind 中的有多少行该方法就会执行多少次,本身就是遍历了就没必要在该方法内部再遍历了。
      

  5.   

    啊,一语点醒梦中人呀。
    原来我相当于遍历了两次这个Repeater了,在把foreach循环去掉以后,稍加修改,就没问题了。
    感谢阿非,不过,为什么遍历两次就会出现最后一行总是不受控的状态?不懂。
      

  6.   

    正常应该不会的,会是你 foreach (RepeaterItem ite in Repeater1.Items) 中代码的问题具体需要跟踪才能发现。