public void CarregaGridAdmin() //Carrega a grid que mostra os Admin Coordenadores. { DataSet ds = Perfil_DB.SelectAll(); int qtd = ds.Tables[0].Rows.Count; //qtd de linhas do ds //se qtd for maior que zero, ou seja, se tiver dados no data set if (qtd > 0) { gdvAdmin.Visible = true; //Parte 2: caso a grid esteja vazia no carregamento e após inserir algum Coordenador, //a grid precisa ficar visível de novo por causa da Parte1(o else debaixo)(Continua parte 3 - último método) gdvAdmin.DataSource = ds.Tables[0].DefaultView; //fonte de dados do grid view recebe o ds criado anteriormente gdvAdmin.DataBind(); //preenche o grid view com os dados foreach (GridViewRow linha in gdvAdmin.Rows) //percorre cada linha da grid (obs: isso existe pelo campo de nome estar em outra tabela no BD da Fatec) { Professor prof = new Professor(); //instancia um novo professor Label lblMatricula = (Label)linha.FindControl("lblMatriculaAdmin"); //acha o label de matrícula da grid e liga a outro label Label lblNome = (Label)linha.FindControl("lblNomeAdmin"); //acha o label de Nome e liga a outro label prof = Professor.SelectByCodigo(lblMatricula.Text); //o número de matrícula do label é usado para preencher o objeto professor usando o método de selecionar por código lblNome.Text = prof.Nome; //o label NomeAdmin da grid é preenchido utilizando o nome que está no objeto do professor (método get encapsulado) } } else { //Parte 1: se não achar nenhum registro no dataset, a grid tem que ficar invisível, pois ela não fica por padrão ao desativar o único adm coordenador restante //(mesmo atualizando a grid e updatepanel) gdvAdmin.Visible = false; } lblQtdRegistroAdm.Text = "Foram encontrados " + qtd + " registros"; }
//DESATIVA PELO ONROWCOMMAND MAS NÃO ATUALIZA POR ALGUM MOTIVO //protected void gdvAdmin_RowCommand(object sender, GridViewCommandEventArgs e) //{ // if (e.CommandName == "DesativarAdm") // { // GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer); //pega a linha da grid pela fonte do comando // string matricula = gdvAdmin.Rows[gvr.RowIndex].Cells[0].Text; //pega a matricula daquela linha do gridview // if (Perfil_DB.DeleteAdminCoord(matricula) == "0") // { // CarregaGridAdmin(); // UpdatePanelAdmin.Update(); // lblMsgAdmin.Text = "Administrador Coordenador desativado com sucesso!"; // CarregaGridProf(); // UpdatePanelProf.Update(); // } // } //} protected void gdvProf_RowCommand(object sender, GridViewCommandEventArgs e) //DEFINE UM PROFESSOR COMO ADMINISTRADOR COORDENADOR { if (e.CommandName == "DefinirAdm") { GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer); //pega a linha da grid pela fonte do comando string matricula = gdvProf.Rows[gvr.RowIndex].Cells[0].Text; //pega a matricula daquela linha do gridview Perfil perf = new Perfil(); perf.Per_usuario = Session["nome"].ToString(); perf.Matricula = matricula; perf.Descricao = 2; if (Perfil_DB.InsertAdmCoord(perf) == 0) { CarregaGridAdmin(); CarregaGridProf(); UpdatePanelProf.Update(); UpdatePanelAdmin.Update(); lblMsgProf.Text = "Administrador Coordenador definido com sucesso!"; } else { UpdatePanelProf.Update(); UpdatePanelAdmin.Update(); lblMsgProf.Text = "Erro ao definir Administrador Coordenador!"; } } }
protected void gdvAdmin_RowUpdating(object sender, GridViewUpdateEventArgs e) //DESATIVA O PERFIL DE ADMINISTRADOR COORDENADOR DE UM PROFESSOR { String matricula = gdvAdmin.DataKeys[e.RowIndex]["per_matricula"].ToString(); //pega a matricula do Admin Coordenador da linha específica if (Perfil_DB.DeleteAdminCoord(matricula) == 0) { CarregaGridAdmin(); UpdatePanelAdmin.Update(); lblMsgAdmin.Text = "Administrador Coordenador desativado com sucesso!"; CarregaGridProf(); //Também carrega a grid e update do Prof para que o ícone de "Definir como Admin" volte a ficar visível para o prof clicado UpdatePanelProf.Update(); } else { UpdatePanelAdmin.Update(); lblMsgAdmin.Text = "Erro ao desativar Administrador Coordenador!"; } }