如何在同一页面上对多个网格视图进行分页?

时间:2013-05-29 15:34:01

标签: c# asp.net gridview ado.net

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

1stPage.aspx上的JavaScript会将两个参数传递给第二页:

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

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

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

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

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

C#CODE:

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 CODE:

<form id="form1" runat="server">
<div>
<asp:PlaceHolder id="ph" runat="server" />
</div>
</form>

0 个答案:

没有答案