Repeater的嵌套和内部排序

Repeater的嵌套在外层Repeater添加事件onitemdatabound,在cs页面写内部Repeater的方法。

Repeater的内部排序在aspx页面增加lable控件,在所在的repeat控件增加OnItemDataBound事件,在cs页面事件里写lable方法。

 

.aspx页面

 <asp:Repeater ID="repcompanysheng" runat="server" onitemdatabound="repcompanysheng_ItemDataBound">
    <ItemTemplate>
                <div class="row">
                    
                    <div class="col-md-8 col-sm-12 col-xs-12" style=" width:100%">

                        <div class="panel panel-default">
                            <div class="panel-heading">
                              第
                              <%#Eval("Stype")%>
                              次结果公布
                            </div> 
                            <div class="panel-body">
                                <div class="table-responsive">
                                    <table class="table table-striped table-bordered table-hover">
                                        <thead>
                                            <tr>
                                                <th>名次</th>
                                                <th>部门</th>
                                                <th>参与人数</th>
                                                <th>总分数</th>
                                             
                                            </tr>
                                        </thead>
                                        <tbody>

                                           
                                                    <asp:Repeater ID="repUser" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
                                              <ItemTemplate>
                                            <tr>
                                                <td><%--<%# this.repUser.Items.Count + 1%>--%>
                                                <%--<%# Container.ItemIndex + 1 %>--%>
                                                 <asp:Label ID="no" runat="server" Text=""></asp:Label>
                                                </td>
                                                <td><%#Eval("Name")%> </td>
                                                <td><%#Eval("renshu")%> 人</td>
                                                <td><%#Eval("zongfen")%> 分 </td>
                                              
                                            </tr>
                                                </ItemTemplate>
                                                   </asp:Repeater>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>

                    </div>
                </div>
                </ItemTemplate>
                </asp:Repeater>

  .cs页面

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                getUser();
            }
        }

        public void getUser()
        {

            //string sqlUser = "select DID,Name,sum(score) as zongfen,count(distinct UserID)as renshu  from content_info,Department_info where content_info.DID=Department_info.ID group by DID,Name  order by zongfen desc";
            //BaseClass.BindRpt(repUser, sqlUser);

            string sqlUser = "select distinct Stype from content_info";
            BaseClass.BindRpt(repcompanysheng, sqlUser);

        }

        protected void repcompanysheng_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            //判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,

            //HeaderTemplate,,ItemTemplate,SeparatorTemplate)
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rep = e.Item.FindControl("repUser") as Repeater;//找到里层的repeater对象
                DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 


                string strCompanyn = Convert.ToString(rowv["Stype"]);

                DataAccess.Da dac = new DataAccess.Da();
                string sql = " select DID,Name,sum(score) as zongfen,count(distinct UserID)as renshu  from content_info,Department_info where content_info.DID=Department_info.ID and content_info.Stype='" + strCompanyn + "' group by DID,Name  order by zongfen desc";

                SqlConnection conn = BaseClass.DBCon();
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                sda.Fill(ds);
                rep.DataSource = ds.Tables[0].DefaultView;
                rep.DataBind();

               



            }
        }

        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Label lb_no = (Label)e.Item.FindControl("no");
            lb_no.Text = (1 + e.Item.ItemIndex).ToString();
        }
        }

  

posted @ 2019-04-04 17:39  &慧&  阅读(192)  评论(0编辑  收藏  举报