データソースなしでページンググリッドビューを構築する方法

StackOverflow https://stackoverflow.com/questions/1630243

  •  06-07-2019
  •  | 
  •  

質問

iは、C#を使用してASP.netコーディングでページングを行う方法について質問します。

私がやろうとしているのは、コンテンツを表示し、複数の列と複数の行を持つことです。

実際のコーディングでは、オブジェクトのリストがあります。オブジェクトAとしましょう

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

そしてページング可能な機能でこれをページに表示したい。

iはGoogle検索を行い、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を使用することをお勧めします。GridViewを使用すると、ObjectDataSourceを使用できます。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のTypeNameおよびSelectMethod属性は、ODSにデータを入力するために使用するメソッドと場所を指示します。 AllowPaging="True"は、GridViewのページングを自動的に提供します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top