2017-09-21 9 views
0

は、現在、私のプログラムは、任意の自動スクロールを行いませんが、OnClickイベントが発生したとき、それは改ページを行い、私はC#このためとして、ASPでネストされたリピータのカップルを持っています私は私のデータセットを通じてのOnClickイベントとページネーションを行う方法です。自動化改ページが

public void relacion_post_comments() 
{ 
    try 
    { 
     double cuenta; 

     SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConexionBD"].ConnectionString); 

     SqlDataAdapter cmd1 = new SqlDataAdapter("select * from vw_Muro_Posts WHERE POST_ESTATUS != '0' ORDER BY cast([POST_FECHA] as datetime) DESC", cnn); 

     DataSet ds = new DataSet(); 
     cmd1.Fill(ds, "vw_Muro_Posts"); 

     cuenta = ds.Tables[0].Rows.Count; 


     PagedDataSource pagedData = new PagedDataSource(); 
     pagedData.DataSource = ds.Tables[0].DefaultView; 
     pagedData.AllowPaging = true; 
     pagedData.PageSize = 10; 
     pagedData.CurrentPageIndex = PgNum; 

     double nuevacuenta = Math.Round(cuenta/pagedData.PageSize); 

     if (PgNum < 1) 
      lnkAtras.Visible = false; 

     else if (PgNum > 0) 
      lnkAtras.Visible = true; 

     if (PgNum == nuevacuenta) 
      lnkAdelante.Visible = false; 

     else if (PgNum < nuevacuenta) 
      lnkAdelante.Visible = true; 

     SqlDataAdapter cmd2 = new SqlDataAdapter("SELECT * FROM vw_Muro_Comments WHERE COMM_ESTATUS != '0' ORDER BY cast([COMM_FECHA] as datetime) DESC", cnn); 

     cmd2.Fill(ds, "vw_Muro_Comments"); 

     //Aqui se hace el join de los dos repeaters 
     ds.Relations.Add("myrelation", 
     ds.Tables["vw_Muro_Posts"].Columns["POST_ID"], 
     ds.Tables["vw_Muro_Comments"].Columns["POST_ID"]); 

     var c = ds.Tables.Count; 

     Repeater_UsrPosts.DataSource = pagedData; 
     Page.DataBind(); 
     cnn.Close(); 
    } 


    catch (Exception ex) 
    { 
     clsLog.ReportarError(); 
    } 
} 


public int PgNum 
{ 
    get 
    { 
     if (ViewState["PgNum"] != null) 
      return Convert.ToInt32(ViewState["PgNum"]); 
     else 
      return 0; 
    } 
    set 
    { 
     ViewState["PgNum"] = value; 
    } 

} 

protected void lnkAdelante_Click(object sender, EventArgs e) 
{ 
    PgNum += 1; 
} 

    protected void lnkAtras_Click(object sender, EventArgs e) 
{ 
    PgNum -= 1; 
} 

質問ですが、私はとの関連ページのスクロール、または解像度サイズ、または何かに関連する何かを持つのOnClickイベントを置き換えますかユーザーがクリックをする必要がないように、C#で、クライアントのビューの動作は、単にデータセットの次のページをロードするためにページの最後に到達しますか?

****************************** UPDATE 05/10/17 ********** **********************

私はこのページの部分的な解決策を見つけた:私が得てきたが、すべての工程を経て、後https://www.aspsnippets.com/Articles/Implement-Infinite-Scroll-Endless-Scroll-in-ASPNet-using-jQuery-AJAX.aspx

無限スクロール-single-リピータ。私はまだネストされたリピータと連携する方法を考え出すていますが。

これまでのところ、私は、ネストされたリピータのデータを表示するための成功せず、次のことを試してみた:aspforums.netから

[WebMethod] 
public static string GetCustomers(int pageIndex) 
{ 
    return GetCustomersData(pageIndex).GetXml(); 
} 


public static DataSet GetCustomersData(int pageIndex) 
{ 
    string query = "[sp_pro_MuroPosts_PageWise]"; 
    SqlCommand cmd = new SqlCommand(query); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.AddWithValue("@PageIndex", pageIndex); 
    cmd.Parameters.AddWithValue("@PageSize", 10); 
    cmd.Parameters.Add("@PageCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output; 
    return GetData(cmd); 
} 

private static DataSet GetData(SqlCommand cmd) 
{ 


    cmd.Connection = clsBaseDatos.sqlConexion; 
    using (cmd.Connection) 
    { 
     using (DataSet ds = new DataSet()) 
     { 
      SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConexionBD"].ConnectionString); 

      SqlDataAdapter sda = new SqlDataAdapter(); 
      cmd.Connection = cnn; 
      sda.SelectCommand = cmd; 
      sda.Fill(ds, "vw_Muro_Posts"); 

      SqlDataAdapter cmd2 = new SqlDataAdapter("SELECT * FROM vw_Muro_Comments WHERE COMM_ESTATUS != '0' ORDER BY cast([COMM_FECHA] as datetime) DESC", cnn); 

      cmd2.Fill(ds, "vw_Muro_Comments"); 

      //Aqui se hace el join de los dos repeaters 
      ds.Relations.Add("myrelation", 
      ds.Tables["vw_Muro_Posts"].Columns["POST_ID"], 
      ds.Tables["vw_Muro_Comments"].Columns["POST_ID"], false); 


      DataTable dt = new DataTable("PageCount"); 
      dt.Columns.Add("PageCount"); 
      dt.Rows.Add(); 
      dt.Rows[0][0] = cmd.Parameters["@PageCount"].Value; 
      ds.Tables.Add(dt); 

      return ds; 
     } 
    } 
} 
+0

自動リピータをリフレッシュするためにタイマーを使用しています。 – AsifAli72090

答えて