2016-09-29 21 views
0

私はecommmerceのWebサイトで働いています。 Listviewコントロールを使用して商品を取り込んでいます。私は36ページの製品を表示しています。今すぐページングを使用して次のページに移動したい場合、それは機能しません。ページは最初のページだけにとどまります。私は2つのソリューションを試しました。Listviewのデータページが機能しない

ページングコード

protected void OnPagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) 
{ 
    if (IsPostBack) { 
     DataPager pgr = products.FindControl("DataPager1") as DataPager; 
     if (pgr != null && products.Items.Count != pgr.TotalRowCount) { 
      pgr.SetPageProperties(0, pgr.MaximumRows, false); 
     } 
    } 
} 

私は同様にフィルタのリストビューデータに多くのCheckBoxListのを持っています。だからここで私は心に留めておいたのですが、もしユーザがオンであれば、&の行は< 36と表示されます。私の下のコードではページングが正しく動作していますが、空白ページ。

protected void OnPagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) 
{ 
    (products.FindControl("DataPager1") as DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, false); 
    this.populateProducts(); 
} 

UPDATE PageLoad

try { 
    query = "SELECT * FROM products where stock_status = @stock_status and status = @status"; 
    string conString = ConfigurationManager.ConnectionStrings("conio").ConnectionString; 
    MySqlConnection con = new MySqlConnection(conString); 
    MySqlCommand cmd = new MySqlCommand(query); 
    cmd.Parameters.AddWithValue("@stock_status", "Ready Stock"); 
    cmd.Parameters.AddWithValue("@status", "active"); 
    con.Open(); 
    MySqlDataAdapter da = new MySqlDataAdapter(); 
    cmd.Connection = con; 
    da.SelectCommand = cmd; 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    ViewState("Data") = dt; 
    products.DataSource = dt; 
    products.DataBind(); 
    catHeading.Text = "Products In Ready Stock"; 
    itemCount.Text = dt.Rows.Count.ToString; 
    catSliderHeader.Text = "Categories"; 
    Page.Title = "Ready Stock Products" + " | BrandSTIK"; 
    con.Close(); 
} catch (Exception ex) { 
    Response.Write(ex); 
} 

答えて

0

私はあなたのPage_LoadイベントでプロパティをIsPostBackプロパティ取り扱っていないとリストビューは、すべてのポストバックで更新なっていると思います。以下のコードを試してください。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!this.IsPostBack) 
     { 
      try { 
    query = "SELECT * FROM products where stock_status = @stock_status and status = @status"; 
    string conString = ConfigurationManager.ConnectionStrings("conio").ConnectionString; 
    MySqlConnection con = new MySqlConnection(conString); 
    MySqlCommand cmd = new MySqlCommand(query); 
    cmd.Parameters.AddWithValue("@stock_status", "Ready Stock"); 
    cmd.Parameters.AddWithValue("@status", "active"); 
    con.Open(); 
    MySqlDataAdapter da = new MySqlDataAdapter(); 
    cmd.Connection = con; 
    da.SelectCommand = cmd; 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    ViewState("Data") = dt; 
    products.DataSource = dt; 
    products.DataBind(); 
    catHeading.Text = "Products In Ready Stock"; 
    itemCount.Text = dt.Rows.Count.ToString; 
    catSliderHeader.Text = "Categories"; 
    Page.Title = "Ready Stock Products" + " | BrandSTIK"; 
    con.Close(); 
} catch (Exception ex) { 
    Response.Write(ex); 
} 
     } 
    } 
+0

私はIsPostBackプロパティの下PopulateProductsを入れて、ページの読み込み – SUN

+0

はあなたのPage_Loadイベントコードを投稿することができたとき、それは、データを取得していない場合は? –

+0

アップロードされたページロードイベントコード – SUN

関連する問題