我想问一个关于如何使用C#在ASP.net编码中进行分页的问题。

我尝试做的是,我想显示一些内容,有多列和多行。

在实际编码中,我有一个对象列表,比如说对象A

class A {
   integer id;
   string name;
   string desc;
}

并希望将其显示在具有可分页功能的页面上。

我做谷歌搜索,ASP.net提供gridview和listview,但它们都需要一个数据源,这意味着该表直接绑定到数据库。

这不是我想要的,因为我的对象A列表来自其他地方,而不是来自我的数据库(例如,它是一个复合数据集,在运行时生成)

所以无论如何我仍然可以使用那些有益的组件,或者我必须自己完成所有这一切的分页???

THX

有帮助吗?

解决方案

DataSource属性也将接受List<>BindingList<>

在代码中使用它:

protected void Page_Load(object sender, EventArgs e)
{
    var data = new List<Sample>();
    data.Add (...);

    GridView1.DataSource = data;
    GridView1.DataBind();
}

也许是一些IsPostback逻辑等。

其他提示

我的建议是使用GridView,您可以使用它来使用ObjectDataSource,它可以从您指定的类方法中获取其基础数据。所以类方法可能是(按照你的代码示例):

public static List<A> GetAllAs()
{
    return myAs;
}

并且您的aspx页面将包含

<asp:ObjectDataSource ID="MyODS" runat="server" TypeName="Namespace.Classname" SelectMethod="GetAllAs" />

<asp:GridView ID="grdMyGridView" runat="server" DataSourceID="MyODS" AllowPaging="True" ... >

ObjectDataSource的TypeNameSelectMethod属性告诉它使用哪种方法以及在哪里用数据填充ODS。 AllowPaging="True"自动为您提供GridView分页。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top