Row.Cell is coming empty

Asked

Viewed 64 times

0

I made a button to inactivate several people in one gridview, the first time the right process, when updating the page, the Row.Cell always comes empty, does not recognize the selected to inactivate.

Code:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ProjetoModelo.ADCCTA
{
    public partial class ConsultarAluno : System.Web.UI.Page
    {
        public static void verificarConexao()
        {
            System.Web.UI.Page aux = new System.Web.UI.Page();

            try
            {
                if (aux.Session["cpf"].ToString().Equals(""))
                {
                    aux.ClientScript.RegisterStartupScript(aux.GetType(), "Load", "<script type='text/javascript'>window.top.location.href = 'Login.aspx'; </script>");
                }
                return;
            }
            catch
            {
                //aux.Server.Transfer("Finalizar.aspx");
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            verificarConexao();
            Config.VerificaSessao();
            MultiView1.SetActiveView(View1);

            if (Session["rptAluno"] != null)
            {
                //CrystalReportViewer1.ReportSource = (ConsultarAlunoRpt)Session["rptAluno"];
                //CrystalReportViewer1.DataBind();
            }
        }

        protected void lnkBtnPesquisar_Click(object sender, EventArgs e)
        {
            string Titulo = tbTitulo.Text;
            string nome = tbNome.Text;
            string cpf = tbCpf.Text;
            string modalidade = ddlModalidade.SelectedValue;
            string turma = ddlTurma.SelectedValue;
            string idadeInicial = tbIdadeInicio.Text;
            string idadeFinal = tbIdadeFim.Text;
            string inativo = rdbAtivo.SelectedValue;
            string tipoAluno = ddlTipoAluno.SelectedValue;

            DataView dataView = GetAluno(Titulo, nome, cpf, turma, modalidade, idadeInicial, idadeFinal, inativo, tipoAluno);

            if ((ddlModalidade.SelectedItem.Text != "TODAS") || (ddlTurma.SelectedItem.Text != "TODAS"))
            {
                if (ddlModalidade.SelectedItem.Text != "TODAS")
                {
                    Session["AlunoFiltroRpt"] = " - " + ddlModalidade.SelectedItem.Text;
                }
                if (ddlTurma.SelectedItem.Text != "TODAS")
                {
                    Session["AlunoFiltroRpt"] += "-" + ddlTurma.SelectedItem.Text;
                }
            }//montar filtro para relatorio
            else
            {
                Session["AlunoFiltroRpt"] = "";
            }


            if (dataView.Count > 0)
            {
                btnExcel.Visible = true;
            }
            else
            {
                btnExcel.Visible = false;
            }

            GridView3.Visible = true;
            GridView3.DataSource = dataView;
            Session["dvAluno"] = dataView;
            GridView3.DataBind();
            GridView3.Columns[1].Visible = false;
            btn_Gerar.Visible = false;
            lbTotalAlunos.Visible = true;
            lbTotalAlunos.Text = string.Format("TOTAL : {0}", dataView.Count != 0 ? dataView.Count : 0);
        }

        private DataView GetAluno(string codigoAluno, string nome, string cpf, string turma, string modalidade, string idadeInicial, string idadeFinal, string inativo, string tipoAluno)
        {
            string select = @"{0}SELECT alunosAcademia.idAluno AS [ID], alunosAcademia.Nome AS [ALUNO], cadastroModalidades.cod AS [CODIGO MODALIDADE], 
            cadastroModalidades.nome AS [MODALIDADE], cadastroTurmaAcademia.cod AS [CODIGO TURMA] , 
            cadastroTurmaAcademia.nome AS [TURMA], cadastroAlunoTurma.cod AS [CODIGO ALUNO TURMA], 
            cadastroAlunoTurma.data_entrada AS [ENTRADA]  ,cadastroAlunoTurma.data_saida AS [SAIDA],alunosAcademia.inativo AS [INATIVO],  
            FLOOR(DATEDIFF(DAY, alunosAcademia.dataNascimento, GETDATE()) / 365.25) as [IDADE], idAluno AS [idAluno], dataMatricula AS [MATRICULA], 
            cadastroAlunoTurma.inativo[INATIVO TURMA] 
            FROM CADASTRO_ALUNO_TURMA cadastroAlunoTurma
                     INNER JOIN CADASTRO_TURMA_ACADEMIA cadastroTurmaAcademia on cadastroAlunoTurma.cod_turma = cadastroTurmaAcademia.cod
                        INNER JOIN CADASTRO_MODALIDADES cadastroModalidades on cadastroTurmaAcademia.cod_modalidade = cadastroModalidades.cod
                        INNER JOIN AlunosAcademia alunosAcademia on alunosAcademia.idAluno = cadastroAlunoTurma.cod_aluno  ";

            if (inativo == "0")
            {
                select += "WHERE cadastroAlunoTurma.inativo = '0' ";
            }
            else
            {
                if (inativo == "1")
                {
                    select += "WHERE cadastroAlunoTurma.inativo = 1 ";
                }
            }


            if (codigoAluno != string.Empty)
            {
                select += "AND alunosAcademia.cod_aluno = '" + codigoAluno.Replace('\'', '´') + "' ";
            }

            if (nome != string.Empty)
            {
                select += "AND alunosAcademia.Nome LIKE '%" + nome.Replace('\'', '´') + "%' ";
            }

            if (cpf != string.Empty)
            {
                select += "AND alunosAcademia.CPF = '" + cpf.Replace('\'', '´') + "' ";
            }

            if (turma != "0")
            {
                select += "AND cadastroAlunoTurma.cod_turma = '" + turma + "' ";
            }

            if (modalidade != "0")
            {
                select += "AND cadastroModalidades.cod = '" + modalidade + "' ";
            }

            if (idadeInicial != string.Empty)
            {
                select += "AND FLOOR(DATEDIFF(DAY, alunosAcademia.dataNascimento, GETDATE()) / 365.25) BETWEEN '" + idadeInicial.Replace('\'', '´') + "' AND '" + idadeFinal.Replace('\'', '´') + "' ";
            }

            if (tipoAluno != "0")
            {
                if (tipoAluno == "1")
                {
                    select += "AND origem = 'Socio'";
                }
                else if (tipoAluno == "2")
                {
                    select += "AND origem = 'Dependente'";
                }
                else
                {
                    select += "AND origem = 'Nao Socio'";
                }
            }

            select += "ORDER BY alunosAcademia.Nome";

            Session["filtro"] = string.Format(select, "00");
            Sql.SelectCommand = string.Format(select, "");
            DataView dataView = (DataView)Sql.Select(DataSourceSelectArguments.Empty);
            return dataView;
        }

        protected void GridView3_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                GridView3.PageIndex = e.NewPageIndex;

                GridView3.DataSource = (DataView)Session["dvAluno"];
                GridView3.DataBind();
            }
            catch
            {
            }
        }

        protected void GridView3_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "EDITAR")
            {
                DataView dv = (DataView)Session["dvAluno"];

                int index = Convert.ToInt32(e.CommandArgument) + GridView3.PageIndex * GridView3.PageSize;

                Response.Redirect("AlterarAluno.aspx?cod=" + dv[index]["idAluno"].ToString());
            }
            else if (e.CommandName == "INATIVAR")
            {
                DataView dataView = (DataView)Session["dvAluno"];

                int index = Convert.ToInt32(e.CommandArgument) + GridView3.PageSize * GridView3.PageIndex;

                Session["idAlunoInativacao"] = dataView[index]["idAluno"].ToString();
                tbCodigoAlunoInativacao.Text = dataView[index]["idAluno"].ToString();
                tbNomeAlunoInativacao.Text = dataView[index]["ALUNO"].ToString();
                Session["index"] = index;
                Session["CodigoAlunoTurma"] = dataView[index]["CODIGO ALUNO TURMA"].ToString();

                ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "showModalInativacao", "showModalInativacao()", true);
            }
        }

        protected void ddlModalidade_Init(object sender, EventArgs e)
        {
            Sql.SelectCommand = "SELECT cod AS [CODIGO], nome AS [NOME] FROM CADASTRO_MODALIDADES";
            DataView dataView = (DataView)Sql.Select(DataSourceSelectArguments.Empty);

            ddlModalidade.Items.Add(new ListItem("TODAS", "0"));

            for (int i = 0; i < dataView.Count; i++)
            {
                ddlModalidade.Items.Add(new ListItem(dataView[i]["NOME"].ToString(), dataView[i]["CODIGO"].ToString()));
            }
        }

        private void MontarTurma(string codigoModalidade)
        {
            Sql.SelectCommand = "SELECT cod AS [CODIGO], nome AS [NOME] FROM CADASTRO_TURMA_ACADEMIA WHERE estado=1 and cod_modalidade = '" + codigoModalidade + "'";
            DataView dataView = (DataView)Sql.Select(DataSourceSelectArguments.Empty);

            ddlTurma.Items.Add(new ListItem("TODAS", "0"));

            for (int i = 0; i < dataView.Count; i++)
            {
                ddlTurma.Items.Add(new ListItem(dataView[i]["NOME"].ToString(), dataView[i]["CODIGO"].ToString()));
            }
        }

        protected void ddlTurma_Init(object sender, EventArgs e)
        {
            ddlTurma.Items.Add(new ListItem("TODAS", "0"));
        }

        protected void ddlModalidade_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlTurma.Enabled = true;

            ddlTurma.Items.Clear();

            MontarTurma(ddlModalidade.SelectedValue);
        }

        protected void ddlTipoAluno_Init(object sender, EventArgs e)
        {
            ddlTipoAluno.Items.Add(new ListItem("TODOS", "0"));
            ddlTipoAluno.Items.Add(new ListItem("SÓCIO", "1"));
            ddlTipoAluno.Items.Add(new ListItem("DEPENDENTE", "2"));
            ddlTipoAluno.Items.Add(new ListItem("NÃO SÓCIO", "3"));
        }

        protected void Remover_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "HideModal", "hideModal();", true);

            string CodigoAlunoTurma = Session["CodigoAlunoTurma"].ToString();

            try
            {
                string update = "UPDATE CADASTRO_ALUNO_TURMA SET [data_saida] = GETDATE(), inativo = 1 WHERE cod = '" + CodigoAlunoTurma + "'";

                Sql.UpdateCommand = update;
                Sql.Update();

                lbTotalAlunos.Visible = false;
                GridView3.Visible = false;

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Sucesso", "alert('Aluno removido com successo');", true);
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Erro", "alert('Não foi possível remover esse aluno da turma, por favor tente novamente!');", true);
            }
        }

        private DataView GetTurmasAluno(string idAluno)
        {
            string select = "SELECT cadastroAlunoTurma.cod AS [CODIGO ALUNO TURMA] ";
            select += "FROM AlunosAcademia alunosAcademia ";
            select += "LEFT JOIN CADASTRO_ALUNO_TURMA cadastroAlunoTurma ON alunosAcademia.idAluno = cadastroAlunoTurma.cod_aluno ";
            select += "LEFT JOIN CADASTRO_TURMA_ACADEMIA cadastroTurmaAcademia ON cadastroAlunoTurma.cod_turma = cadastroTurmaAcademia.cod ";
            select += "LEFT JOIN CADASTRO_MODALIDADES cadastroModalidades ON cadastroTurmaAcademia.cod_modalidade = cadastroModalidades.cod ";
            select += "WHERE cadastroAlunoTurma.data_saida IS NULL ";
            select += "AND alunosAcademia.idAluno = '" + idAluno + "' ";
            select += "ORDER BY alunosAcademia.Nome";

            Sql.SelectCommand = select;
            DataView dataView = (DataView)Sql.Select(DataSourceSelectArguments.Empty);

            return dataView;
        }

        protected void btnInativar_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "HideModal", "hideModal();", true);

            string idAluno = Session["idAlunoInativacao"].ToString();

            var dataView = GetTurmasAluno(idAluno);

            string CodigoAlunoTurma = Session["CodigoAlunoTurma"].ToString();

            try
            {

                string update = "UPDATE CADASTRO_ALUNO_TURMA SET [data_saida] = GETDATE(), inativo = 1 WHERE cod = '" + CodigoAlunoTurma + "'";

                Sql.UpdateCommand = update;

                if (Sql.Update() > 0)
                {
                    //string update2 = "UPDATE AlunosAcademia SET inativo = '1' WHERE idAluno = '" + idAluno + "'";
                    //Sql.UpdateCommand = update2;

                    //if(Sql.Update()>0)
                    //{
                    //    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Sucesso", "alert('Aluno inativado com successo');", true);
                    //}
                    //else
                    //{
                    //    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Erro", "alert('Não foi possível inativar esse aluno, por favor tente novamente!');", true);
                    //}

                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Sucesso", "alert('Aluno inativado com sucesso');", true);
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Erro", "alert('Não foi possível inativar esse aluno, por favor tente novamente!');", true);
                }

                //if (dataView.Count == 1)
                //{

                //}

                Session["index"] = null;

                lbTotalAlunos.Visible = false;
                GridView3.Visible = false;


            }
            catch (Exception ex)
            {
                //MessageBox.Show("Não foi possível inativar esse aluno, por favor tente novamente.");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Erro", "alert('Não foi possível inativar esse aluno, por favor tente novamente!');", true);
                //Response.Redirect("ConsultarAluno.aspx");
            }
        }

        protected void btn_Gerar_Click(object sender, EventArgs e)
        {
            MultiView1.SetActiveView(View2);
            DataView dv = (DataView)Session["dvAluno"];

            System.Data.DataTable tb = new System.Data.DataTable();

            tb.Columns.Add("Aluno", typeof(String));
            tb.Columns.Add("Modalidade", typeof(String));
            tb.Columns.Add("Turma", typeof(String));
            tb.Columns.Add("Idade", typeof(String));
            tb.Columns.Add("Aluno Desde", typeof(String));
            tb.Columns.Add("Usuario", typeof(String));
            tb.Columns.Add("Total", typeof(String));
            tb.Columns.Add("Filtro", typeof(String));

            for (int i = 0; i < dv.Count; i++)
            {
                try
                {
                    DataRow linha = tb.NewRow();

                    linha["Aluno"] = dv[i]["ALUNO"].ToString().ToUpper();
                    linha["Modalidade"] = dv[i]["MODALIDADE"].ToString().ToUpper();
                    linha["Turma"] = dv[i]["TURMA"].ToString().ToUpper();
                    linha["Idade"] = dv[i]["IDADE"].ToString();
                    linha["Aluno Desde"] = Convert.ToDateTime(dv[i]["MATRICULA"]).ToString("d");
                    linha["Filtro"] = Session["AlunoFiltroRpt"].ToString().ToUpper();
                    linha["Total"] = dv.Count + "";

                    try
                    {
                        linha["Usuario"] = Session["usuario"].ToString().ToUpper();
                    }
                    catch
                    {
                    }

                    tb.Rows.Add(linha);
                }
                catch
                {
                }
            }

            ConsultarAlunoRpt meuRelatorio = new ConsultarAlunoRpt();
            meuRelatorio.SetDataSource(tb);
            //CrystalReportViewer1.ReportSource = meuRelatorio;
            //CrystalReportViewer1.RefreshReport();
            //CrystalReportViewer1.Visible = true;

            Session["rptAluno"] = meuRelatorio;

        }

        protected void btn_Voltar_Click(object sender, EventArgs e)
        {
            MultiView1.SetActiveView(View1);

        }

        protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var dataview = (DataView)Session["dvAluno"];

                if (dataview[e.Row.RowIndex]["INATIVO TURMA"].ToString() == "1")
                    e.Row.Cells[5].Text = string.IsNullOrEmpty(dataview[e.Row.RowIndex + GridView3.PageSize * GridView3.PageIndex]["SAIDA"].ToString()) ? string.Empty : DateTime.Parse(dataview[e.Row.RowIndex + GridView3.PageSize * GridView3.PageIndex]["SAIDA"].ToString()).ToShortDateString();
            }
        }

        //protected void btnExcel_Click(object sender, EventArgs e)
        //{
        //    Response.Write("<script> window.open('gerarexcel.aspx', '_blank'); </script>");
        //}

        //protected void chkInativar_CheckedChanged(object sender, EventArgs e)
        //{
        //    foreach (GridViewRow row in GridView3.Rows)
        //    {
        //        CheckBox chVarios = (CheckBox)row.FindControl("chkInativar");

        //        if (chVarios != null)
        //        {
        //            chVarios.Checked = (sender as CheckBox).Checked;
        //        }
        //    }
        //}

        protected void btnInativarVarios_Click(object sender, EventArgs e)
        {                       

            foreach (GridViewRow row in GridView3.Rows)
            {

                CheckBox cb = (CheckBox)row.FindControl("chkInativar");

                if (cb.Checked)
                {
                    string update = "UPDATE CADASTRO_ALUNO_TURMA SET [data_saida] = GETDATE(), inativo = 1 WHERE cod = '" + row.Cells[1].Text + "'";

                    Sql.UpdateCommand = update;
                    Sql.Update();

                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Sucesso", "alert('Aluno(s) inativado(s) com sucesso');", true);

                    lnkBtnPesquisar_Click(sender, e);                    
                }
            }
        }

        protected void btnExcel_Click(object sender, EventArgs e)
        {
            Response.Write("<script> window.open('gerarexcel.aspx', '_blank'); </script>");
        }
    }
}
  • Can you show us which part of the code you believe to have an error? For example: what function is wrong.

  • You are showing the whole code '-', show only the required part

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.