문제

C#을 사용하여 ASP.NET 코딩에서 페이징을 수행하는 방법에 대해 질문하고 싶습니다.

내가하려고하는 것은 콘텐츠를 표시하고 멀티 칼럼과 멀티 행이 있다는 것입니다.

실제로 코딩에는 객체 목록이 있습니다.

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

Pagable 기능을 사용하여 페이지에 표시하고 싶습니다.

Google 검색을 수행하고 ASP.NET은 GridView 및 ListView를 제공하지만 모두 데이터 소스가 필요하므로 테이블이 데이터베이스에 직접 바인딩하는 것을 의미합니다.

그것은 내가 원하는 것이 아닙니다. 내 객체 목록 A는 내 데이터베이스가 아닌 다른 곳에서 나옵니다 (예 : 런타임에 생성되는 복합 데이터 세트입니다).

그래서 어쨌든 나는 여전히 그 베니피이트 구성 요소를 사용할 수 있거나, 페이징을 위해 스스로해야합니까 ???

고마워

도움이 되었습니까?

해결책

DataSource 속성도 수락합니다 List<> 또는 BindingList<> .

코드에서 이것을 사용하려면 :

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

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

그리고 아마도 일부 ispostback logic 등

다른 팁

제 조언은 객체 Datasource를 사용할 수있는 그리드 뷰를 사용하는 것입니다. 따라서 클래스 메소드는 (코드 예제에 따른) 일 수 있습니다.

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" ... >

그만큼 TypeName 그리고 SelectMethod ObjectDataSource의 속성은 데이터로 OD를 채우는 데 사용하는 방법과 위치를 알려줍니다. 그만큼 AllowPaging="True" GridView에서 자동으로 페이징을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top