2017-01-20 2 views
0
protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       GetData(); 

      } 
     } 

public void GetData() 
     { 
     string SQL=string.Empty; 
      SqlDataAdapter commandToBeLog=null; 

      SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); 

       SQL = " SELECT * FROM tbl_Video"; 
       if (txtSearchVideo.Text.Trim() != string.Empty) 
       { 
        SQL += " WHERE VideoName LIKE @VideoName "; 
        ListView1.DataSource = null; 
       } 
       SQL += " ORDER BY VideoID DESC"; 

       DataSet ds = new DataSet(); 
       SqlDataAdapter myCommand = new SqlDataAdapter(
          SQL, con); 

       if (txtSearchVideo.Text.Trim() != string.Empty) 
       { 
        myCommand.SelectCommand.Parameters.Add("@VideoName", SqlDbType.NVarChar, 300).Value = "%" + txtSearchVideo.Text + "%"; 
       } 

       myCommand.Fill(ds); 

       ListView1.DataSource = ds; 
       ListView1.DataBind(); 
      } 

protected void ListView1_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) 
     { 
      DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows,    false); 
      this.GetData(); 


     } 

     protected void btnSerch_Click(object sender, EventArgs e) 
     { 

      if (txtSearchVideo.Text.Trim() != string.Empty) 
      { 
       GetData(); 
       GetData(); 
      } 
      else 
      { 

       GetData(); 
      } 

     } 

Salut, comment puis-je faire la vue de la liste pagination est pas depedent à la recherche de zone de texte. J'ai eu un problème avec pager de recherche listview, chaque fois que je clique sur le bouton de recherche avec la valeur de la zone de texte égale à A, le feu d'événement btnSerch_Click. Il montre 3 pages de données avec des résultats et puis je navigue à la page 3. Mais quand je tape dans la zone de texte avec la valeur B (il suppose montrer une page de données), et je n'ai pas cliqué sur le bouton de recherche. La chose étrange arrive, il montre des données non pertinentes ou des données brisées.liste asp.net Montrer la pagination des données ventilées lorsque la recherche

Comment est-ce que je résous ce problème, je ne veux pas que la barre de navigation de la page soit depedent à la zone de texte. Ce que je veux dire, c'est que je clique sur la page 2, la fonction GetData() ne se déclenche pas, mais seulement le déclencheur de la page.

Répondre

0

Vous devez supprimer cette ligne

ListView1.DataSource = null; 

de la méthode GetData. Parce que si vous null ListView, les propriétés que vous définissez dans ListView1_PagePropertiesChanging seront perdues.

Et vous pouvez réduire la méthode de clic sur une seule ligne.

protected void btnSerch_Click(object sender, EventArgs e) 
{ 
    GetData(); 
} 
+0

j'avais essayer votre solution, mais semblent comme deux fois le récepteur d'appel fonctionne toujours pas normalement –

+0

Si je ne déclenchent pas GetData(), le résultat ne viendriez pas, comment puis-je l'ai résolu? –

+0

Cela semble peu probable, mais que se passe-t-il si vous corrigez l'erreur d'origine en supprimant 'ListView1.DataSource = null;' – VDWWD