//时间排序
public int MyComDatetime(DiscussionBoards a,DiscussionBoards b){
return (int)(Convert.ToDateTime(b.LastModified)-Convert.ToDateTime(a.LastModified)).TotalSeconds;
//return a.LastModified.CompareTo(b.LastModified);
}
//帖子排序
public int MyComTOPIC(DiscussionBoards a, DiscussionBoards b)
{
return a.Body.CompareTo(b.Body);
}
//按照时间排序
protected void lbDate_Click(object sender, EventArgs e)
{
List<DiscussionBoards> discassionTopics = ViewState["discassionTopics"] as List<DiscussionBoards>;
if (discassionTopics == null && discassionTopics.Count == 0) return;
LinkButton lb = (sender as LinkButton);
if (lb == null) return;
if (lb.CommandName == "TOPIC")
{
discassionTopics.Sort(MyComTOPIC);
}
else if (lb.CommandName == "DATE")
{
discassionTopics.Sort(MyComDatetime);
}
else if (lb.CommandName == "REPLIES")
{
discassionTopics.Sort();//默认排序!
}
RepTopics.DataSource = discassionTopics;
RepTopics.DataBind();
}
前台使用 "TOPIC| DATE| REPLIES" 三个LinkButton按钮排序!这样前台三个按钮的onclick事件都调用lbDate_Click()这一个方法!用CommandName区别
DiscussionBoards 类需要实现:IComparable接口!标记为[Serializable];
默认排序:就是实现:IComparable接口方法!