none
Paginação de uma Gridview dentro de outra Gridview

    Pergunta

  • Senario:

    codigo para carregar a gridview Filha, ou seja a gridview que esta dentro da Gridview Principal:

     protected void GridGrupos_RowDataBound(object sender, GridViewRowEventArgs e)
    
     {
    
      if (e.Row.RowType == DataControlRowType.DataRow)
    
      {
    
       
    
       // lblteste = ((Label)e.Row.FindControl("lblGrupo")).Text.ToString();
    
       // carrega o gridview do subgrupo com parametro de sessao e do codigo por url
    
       GridView GridSubgrupos = ((GridView)e.Row.FindControl("GridSubgrupos"));
    
       dalQuestionarios dal = new dalQuestionarios();
    
       GridSubgrupos.DataSource = dal.ListarSubgrupo(Int32.Parse(Request.QueryString["codigo"].ToString()), Int32.Parse(Session["unidade"].ToString())).Tables[0].DefaultView;
    
       GridSubgrupos.DataBind();
    
      }
    
     }
    
    

    O correto seria utilizar a seguinte codificação:

     protected void GridSubgrupos_PageIndexChanging(object sender, GridViewPageEventArgs e)
    
     {
    
      Int32 idunidade = Int32.Parse(Session["unidade"].ToString());
    
      GridSubgrupos.PageIndex = e.NewPageIndex;    
    
     }
    
    
    mas como o gridview esta dentro de um templatefiel do principal, o sistema informa que o objeto GridSubgrupo nao existe.

    entao como eu faço pra que a paginaçao funcione?

     

     


    Kelson Lima
    • Editado kelson segunda-feira, 19 de julho de 2010 13:39 codigo errado
    sexta-feira, 16 de julho de 2010 17:40

Respostas

  • Pessoal depois de quebrar a cabeça durante esses dias consegui chegar num resultado

    O codigo que trouxe as paginaçoes dicou da seguinte forma:

    protected void GridSubgrupos_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
        GridView GridSubgrupos = (GridView)(sender);// atribui ao gridSubgrupo os valores do componete do gridiview GridSubgrupo
        GridSubgrupos.PageIndex = e.NewPageIndex; // atribui o novo indice
        dalQuestionarios dal = new dalQuestionarios(); // carrega novamente os dados do dataset
        GridSubgrupos.DataSource = dal.ListarSubgrupo(Int32.Parse(Request.QueryString["codigo"].ToString()), Int32.Parse(Session["unidade"].ToString())).Tables[0].DefaultView;
        GridSubgrupos.DataBind();
      }
    Mesmo assim agradeço o impenho de todos em tentar resolver esta questao e espero que o codigo sirva pra outros que tiverem o mesmo problema
    Kelson Lima
    • Marcado como Resposta kelson segunda-feira, 19 de julho de 2010 18:20
    segunda-feira, 19 de julho de 2010 18:20

Todas as Respostas

  • Tenta colocar uma validação

     

    if (

    GridSubgrupos !=null)

    carrega sua grid
    sexta-feira, 16 de julho de 2010 17:52
  • Tenta colocar uma validação

     

    if (

    GridSubgrupos !=null)

    carrega sua grid

    Entao Seilor, quando eu vou compilar da a mensagem: Error 1 Nome 'GridSubgrupos' não existe no contexto atual 
    Kelson Lima
    sexta-feira, 16 de julho de 2010 18:04
  • Tenta colocar uma validação

     

    if (

    GridSubgrupos !=null)

    carrega sua grid

    Entao Seilor, quando eu vou compilar da a mensagem: Error 1 Nome 'GridSubgrupos' não existe no contexto atual 
    Kelson Lima

    Pessoal alguem pode me dar uma força nesta questao, pois realmente nao sei como conseguir paginar uma grid dentro da outra atravez de codificaçao
    Kelson Lima
    sábado, 17 de julho de 2010 13:33
  • Tenta colocar uma validação

     

    if (

    GridSubgrupos !=null)

    carrega sua grid

    Entao Seilor, quando eu vou compilar da a mensagem: Error 1 Nome 'GridSubgrupos' não existe no contexto atual 
    Kelson Lima

    Pessoal alguem pode me dar uma força nesta questao, pois realmente nao sei como conseguir paginar uma grid dentro da outra atravez de codificaçao
    Kelson Lima


    Alguem que ja fez isso ou tem alguma ideia poderia me ajudar?

     


    Kelson Lima
    segunda-feira, 19 de julho de 2010 13:39
  • Onde vc colocou a validação posta o code
    segunda-feira, 19 de julho de 2010 14:14
  • Onde vc colocou a validação posta o code



    Entao Seilor, nem validar eu consigo pois

    ao colocar o argumento que vc postou e depois ao compilar o sistema informa que o  objeto GridSubgrupos nao existe no contexto atual


    Kelson Lima
    segunda-feira, 19 de julho de 2010 14:26
  • Onde vc colocou a validação posta o code



    Entao Seilor, nem validar eu consigo pois

    ao colocar o argumento que vc postou e depois ao compilar o sistema informa que o  objeto GridSubgrupos nao existe no contexto atual


    Kelson Lima

    O correto seria eu pegar um objeto do tipo Gridview instanciado como GridSubgrupo  dentro do

    GridSubgrupos_PageIndexChanging, mas nao estou conseguindo fazer isso


    Kelson Lima
    segunda-feira, 19 de julho de 2010 14:30
  • Posta seu code
    segunda-feira, 19 de julho de 2010 14:38
  • Posta seu code

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    public partial class Questionario : System.Web.UI.Page
    {
      
      protected void Page_Load(object sender, EventArgs e)
      {
        if (!IsPostBack)
        {
          CarregarGrid(Int32.Parse(Request.QueryString["codigo"].ToString()), Int32.Parse(Session["unidade"].ToString()));
    
          //CarregaQuestao("", Int32.Parse(Session["unidade"].ToString()));
                 
        }
      }
      public void CarregarGrid(Int32 idgrupo, Int32 idunidade)
      {
        dalQuestionarios dal = new dalQuestionarios();
        GridGrupos.DataSource = dal.ListarGrupo(idgrupo, idunidade).Tables[0].DefaultView;
        GridGrupos.DataBind();
      }
     /*  public void CarregaQuestao(String desc, Int32 idunidade)
      {
        dalQuestionarios dal = new dalQuestionarios();
        GridQuestao.DataSource = dal.Listarquestao(desc, idunidade).Tables[0].DefaultView;
        GridQuestao.DataBind();
      } 
     */
     
      
    
      protected void GridGrupos_RowDataBound(object sender, GridViewRowEventArgs e)
      {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
          
          // lblteste = ((Label)e.Row.FindControl("lblGrupo")).Text.ToString();
          // carrega o gridview do subgrupo com parametro de sessao e do codigo por url
          GridView GridSubgrupos = ((GridView)e.Row.FindControl("GridSubgrupos"));
          dalQuestionarios dal = new dalQuestionarios();
          GridSubgrupos.DataSource = dal.ListarSubgrupo(Int32.Parse(Request.QueryString["codigo"].ToString()), Int32.Parse(Session["unidade"].ToString())).Tables[0].DefaultView;
          GridSubgrupos.DataBind();
          
        }
      }
    
    
      protected void GridSubgrupos_RowDataBound(object sender, GridViewRowEventArgs e)
      {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
    
          // carrega o gridview do questoes com parametro de sessao e do codigo por url
          
    
          Label lblteste = ((Label)e.Row.FindControl("lblSubgrupo"));
          GridView GridQuestao = ((GridView)e.Row.FindControl("GridQuestao"));
          dalQuestionarios dal2 = new dalQuestionarios();
          GridQuestao.DataSource = dal2.Listarquestao(Int32.Parse(lblteste.Text.ToString()));
          GridQuestao.DataBind();
          
        }
      }
      protected void GridSubgrupos_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
        if (GridSubgrupos != null)
        {
          GridSubgrupos.PageIndex = e.NewPageIndex;  
        }
    
        
      }
    }
    

    Kelson Lima
    segunda-feira, 19 de julho de 2010 15:14
  • Pessoal depois de quebrar a cabeça durante esses dias consegui chegar num resultado

    O codigo que trouxe as paginaçoes dicou da seguinte forma:

    protected void GridSubgrupos_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
        GridView GridSubgrupos = (GridView)(sender);// atribui ao gridSubgrupo os valores do componete do gridiview GridSubgrupo
        GridSubgrupos.PageIndex = e.NewPageIndex; // atribui o novo indice
        dalQuestionarios dal = new dalQuestionarios(); // carrega novamente os dados do dataset
        GridSubgrupos.DataSource = dal.ListarSubgrupo(Int32.Parse(Request.QueryString["codigo"].ToString()), Int32.Parse(Session["unidade"].ToString())).Tables[0].DefaultView;
        GridSubgrupos.DataBind();
      }
    Mesmo assim agradeço o impenho de todos em tentar resolver esta questao e espero que o codigo sirva pra outros que tiverem o mesmo problema
    Kelson Lima
    • Marcado como Resposta kelson segunda-feira, 19 de julho de 2010 18:20
    segunda-feira, 19 de julho de 2010 18:20