如何在将数据显示给中继器之前对其进行排序

本文关键字:排序 中继器 数据 显示 | 更新日期: 2023-09-27 18:00:37

在向中继器显示数据之前如何对数据进行排序我写了下面的代码,想知道如何在不依赖sql server的情况下按姓氏对数据进行排序。我很乐意按LINQ排序,这是可能的。你能给我一个如何根据我的代码对数据库进行排序的例子吗。

WebForm

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table cellspacing="1"  border="1">
                    <tr>
                        <td>First Name</td>
                        <td>Last Name</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%# DataBinder.Eval(Container.DataItem, "FirstName") %> </td>
                    <td><%# DataBinder.Eval(Container.DataItem, "LastName") %> </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
</body>
</html>

代码隐藏

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
public class OFullName
{
    private string firstName;
    public string FirstName
    {
        get
        {
            return firstName;
        }
    }
    private string lastName;
    public string LastName
    {
        get
        {
            return lastName;
        }
    }
    public OFullName(string FirstName, string LastName)
    {
        firstName = FirstName;
        lastName = LastName;
    }
}
public partial class _Default : System.Web.UI.Page
{
    public static Random random = new Random();// The random number sequence
    private static string ShuffleString(string StringInput)
    {
             //Create new string from the reordered char array
            string rand = new string(StringInput.ToCharArray().
            OrderBy(s => (random.Next(2) % 2) == 0).ToArray());
        return rand;
    }
    protected void Page_Load(object sender, EventArgs e)
    {

        ArrayList xNames = new ArrayList();
        string TestString = "123ABCDEFGHIJK";
        for (int i = 1; i <= 10; i++)
        {
            xNames.Add(new OFullName(ShuffleString(TestString), ShuffleString(TestString)));
        }
        Repeater1.DataSource = xNames;//Add data from the Array list
        //How to sort data?
        Repeater1.DataBind();//Bind data
    }
}

如何在将数据显示给中继器之前对其进行排序

我会使用泛型:

protected void Page_Load(object sender, EventArgs e)
{

    var xNames = new List<OFullName>();
    string TestString = "123ABCDEFGHIJK";
    for (int i = 1; i <= 10; i++)
    {
        xNames.Add(new OFullName(ShuffleString(TestString), ShuffleString(TestString)));
    }
    Repeater1.DataSource = xNames.OrderBy(x => x.LastName); // sorts by last name Ascending. Use OrderByDesc to sort descending.
    Repeater1.DataBind();//Bind data
}

按姓氏排序:

    Repeater1.DataSource = xNames.OrderBy(item => item.LastName);
    Repeater1.DataBind();