我使用的是asp2.0,我需要对中继器控件进行排序。我在网上搜索,但找不到正确的解决方案。如果有人知道答案,请帮我解决问题。
在绑定到中继器之前,需要对集合进行排序。
如果要在post-back上动态排序,请在重新绑定到中继器之前在事件处理程序中进行排序。
本文解释了如何向Repeater或DataList控件添加排序功能。它可能有助于你的目的,或者至少作为一个指南。
最后我在Repeater Control中得到了排序输出。
1.维护静态变量;
static int count = 0;
2.在链接按钮中单击事件
protected void lnkreq_name_click(object sender, EventArgs e)
{
count=Convert.ToInt32(ViewState["count"].ToString());
ViewState["count"] = count;
loadRepeater("REQUEST_NAME",count);
}
3.调用功能
protected void loadRepeater(string reqname,int count)
{
//write the code to bind into Dataset
DataView dv = ds.Tables[0].DefaultView;
if (count == 0)
{
dv.Sort = reqname + " asc";
ViewState["count"] = 1;
}
else if (count == 1)
{
dv.Sort = reqname + " desc";
ViewState["count"] = 0;
}
//then bind into repeater
}
4.中继器内
<asp:Repeater runat="server" ID="RepeaterEntry" >
<HeaderTemplate >
<table class="list_table" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<th><asp:LinkButton ID="lnkreq_name" runat="server" ForeColor="white" OnClick="lnkreq_name_click" >Request Name</asp:LinkButton></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("REQUEST_NAME")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>