データソースなしでページンググリッドビューを構築する方法
-
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のページングを自動的に提供します。