2 ページの asp.net/C# アプリケーションを作成しています。
JavaScript on1stPage.aspx
は、2 番目のページに 2 つのパラメーターを渡します。
2ndPage.aspx?Paramter1=abc&Paramter2=xyz
2ndPage.aspx
SQL データベースに対してクエリを実行し、グリッドビューを動的に作成します。
異なる ID を使用して、同じページに 5 つの異なるグリッドビューを動的に作成します。グリッドビューをページネーションしたい。
ページネーションを試みると、最後の 4 つのグリッドに変化がありません。最初のグリッドビューのページネーションのみが正しく機能します。
データビューをキャッシュしようとしましたが、何も機能していないようです。
C# コード:
protected void Page_Load(Object Src, EventArgs E)
{
if (!IsPostBack)
{
string Param1= Page.Request.QueryString["Paramter1"];
string Param1 = Page.Request.QueryString["Paramter2"];
SqlDataAdapter cmdldata = new SqlDataAdapter("" + Param1 + " " + Param1, sqlconn);
DataView dataview_ldata;
GridView gv = new GridView();
ph.Controls.Add(gv);
gv.ID = "grid" + param1;
gv.AutoGenerateColumns = true;
gv.ShowFooter = false;
gv.CellPadding = 2;
gv.CellSpacing = 0;
gv.Font.Size = 11;
gv.EnableViewState = true;
gv.AllowPaging = true;
gv.PageSize = 10;
gv.RowStyle.Wrap = false;
gv.HeaderStyle.Wrap = false;
gv.PageIndexChanging += new GridViewPageEventHandler(gv_PageIndexChanging);
DataSet dsldata;
dsldata = new DataSet();
cmdldata.Fill(dsldata);
dataview_ldata = dsldata.Tables[0].DefaultView;
gv.DataSource = dataview_ldata;
gv.DataBind();
Cache["data"] = dataview_ldata;
ph.DataBind();
}//end of if IsPostBack
}//end of pageload
void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gv = (GridView)sender;
gv.PageIndex = e.NewPageIndex;
gv.DataSource = (DataView)Cache["data"];
gv.DataBind();
}
HTML コード:
<form id="form1" runat="server">
<div>
<asp:PlaceHolder id="ph" runat="server" />
</div>
</form>