[OK]を、私はいつでもアメリカオシのビットすることができて、ページング大量
私は戻って、多くを引っ張っされますasp.netでGridViewのを持っている...私と一緒に負担してください何千もの記録これは、物事のパフォーマンス面を除いて、すべてうまくいいです。私はデータセットに私のGridviewをバインドしており、これはクエリのすべてのレコードを取り戻します。私はこれを変更して、グリッドビューが現在表示しているレコードだけを取り戻し、ユーザーが次のページに移動して次のデータのチャックなどを取得するときに変更したい。
以下は、私のgridviewsとページングと並べ替えを処理します。これは小さなデータ量ではうまく動作しますが、大きなデータ量ではあまり効果がありません。私はDALとしてSubSonicを使用しています。上記のようにページングを達成する最良の方法について誰でも正しい方向に向けることができますか?事前に
おかげで...
public SortDirection SortDir
{
get
{
if (ViewState["sortDirection"] == null)
{
ViewState["sortDirection"] = SortDirection.Ascending;
} return (SortDirection)ViewState["sortDirection"];
}
set
{
ViewState["sortDirection"] = value;
}
}
DataSet ds = new DataSet();
DataView dv = new DataView();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
GridView1.DataSource = dv;
GridView1.DataBind();
}
}
private DataView BindGrid()
{
ds = new Query(AnthemWeb.DAL.Item.Schema).ExecuteDataSet();
if (ViewState["sortExpr"] != null)
{
dv = new DataView(ds.Tables[0]);
dv.Sort = (string)ViewState["sortExpr"];
}
else
{
dv = ds.Tables[0].DefaultView;
}
return dv;
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = BindGrid();
GridView1.DataBind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string stExp = e.SortExpression;
string stDir = string.Empty;
if (SortDir == SortDirection.Ascending)
{
SortDir = SortDirection.Descending;
stDir = "DESC";
}
else
{
SortDir = SortDirection.Ascending;
stDir = "ASC";
}
ViewState["sortExpr"] = e.SortExpression + " " + stDir;
GridView1.DataSource = BindGrid();
GridView1.DataBind();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedRowIndex;
selectedRowIndex = GridView1.SelectedIndex;
GridViewRow row = GridView1.Rows[selectedRowIndex];
string ID = row.Cells[0].Text;
Response.Redirect("customer-details.aspx?ID=" + ID, false);
}
返信いただきありがとうございます。私はSubsonicでページメソッドを使用しようとしていますが、私が今行っている問題は、gridviewのページャコントロールが表示されていないということですか? 私はコレクションを作成し、これにグリッドビューをバインドしています。私は.Paged(pageIndex、6)を渡しています。 allowpagingはgridviewに設定されており、GridView1_PageIndexChangingイベント(BindPagedData(e.NewPageIndex、6);)を処理するメソッドがあります。ページングを通過するコントロールは表示されません。テスト用に120レコードあります。 私は完全に間違った方法でこれについて行きますか?何か助けてくれてありがとう。 – macou