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();
}
}