0

我正在创建一个 2 页的 asp.net / C# 应用程序。

JavaScript on1stPage.aspx将向第二页传递两个参数:

2ndPage.aspx?Paramter1=abc&Paramter2=xyz

2ndPage.aspx将触发对 SQL 数据库的查询并动态创建网格视图。

我在同一页面上使用不同的 ID 动态创建了 5 个不同的网格视图。我想分页gridview。

当我尝试分页时,最后 4 个网格没有变化。只有第一个 gridview 的分页才能正常工作。

我试图缓存数据视图,但似乎没有任何效果。

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>
4

0 回答 0