protected void grvNiveis_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView grv = ((GridView)sender); // Se estiver cancelando o registro que acabou de ser incluído, exclui do DataTable. if (VS_Dt_Niveis[grv.EditIndex].nvl_id <= 0) { VS_Dt_Niveis.RemoveAt(grv.EditIndex); } grv.EditIndex = -1; if (lblObservacao.Visible) { lblObservacao.Visible = false; VS_Aux_Dois_Niveis = 0; VS_Dt_Niveis.Clear(); } if (VS_Dt_Niveis.Any()) { VS_ordem_ultimo = VS_Dt_Niveis.LastOrDefault().nvl_ordem; } CarregaNiveis(true); }
protected void btnIncluir_Click(object sender, EventArgs e) { try { if (VS_ordem_ultimo < 0) { VS_ordem_ultimo = 1; } else { VS_ordem_ultimo++; } int indexUltimo = 0; int indexEdit = 0; string orientacao_curricular = ""; if (VS_Dt_Niveis.Any()) { indexUltimo = VS_Dt_Niveis.Count() - 1; // Se o último nível possuir orientação curricular, o novo registro deve ficar em penúltimo, para que o último se matenha em último. orientacao_curricular = VS_Dt_Niveis.LastOrDefault().ocr_id.ToString(); } if (VS_Dt_Niveis.Any() && !string.IsNullOrEmpty(orientacao_curricular)) { // penúltimo sNivelOrientacaoCurricular rowNew = new sNivelOrientacaoCurricular(); rowNew.nvl_id = -1; rowNew.cur_id = VS_cur_id; rowNew.crr_id = VS_crr_id; rowNew.crp_id = VS_crp_id; rowNew.cal_id = VS_cal_id; rowNew.tds_id = VS_tds_id; rowNew.nvl_ordem = VS_ordem_ultimo - 1; rowNew.nvl_nome = ""; rowNew.nvl_nomePlural = String.Empty; rowNew.nvl_situacao = 0; rowNew.nvl_dataCriacao = DateTime.Now; rowNew.ocr_id = -1; // último sNivelOrientacaoCurricular rowHab = new sNivelOrientacaoCurricular(); rowHab.nvl_id = VS_Dt_Niveis.LastOrDefault().nvl_id; rowHab.cur_id = VS_cur_id; rowHab.crr_id = VS_crr_id; rowHab.crp_id = VS_crp_id; rowHab.cal_id = VS_cal_id; rowHab.tds_id = VS_tds_id; rowHab.nvl_ordem = VS_ordem_ultimo; rowHab.nvl_nome = VS_Dt_Niveis.LastOrDefault().nvl_nome; rowHab.nvl_nomePlural = VS_Dt_Niveis.LastOrDefault().nvl_nomePlural; rowHab.nvl_situacao = VS_Dt_Niveis.LastOrDefault().nvl_situacao; rowHab.nvl_dataCriacao = VS_Dt_Niveis.LastOrDefault().nvl_dataCriacao; rowHab.ocr_id = VS_Dt_Niveis.LastOrDefault().ocr_id; VS_Dt_Niveis.Remove(VS_Dt_Niveis.Last()); VS_Dt_Niveis.Add(rowNew); VS_Dt_Niveis.Add(rowHab); // Edita penúltima linha. indexEdit = VS_Dt_Niveis.Count() - 2; } else if (VS_Dt_Niveis.Count() == 0) { AdicionaLinhaDataTable(); //AdicionaLinhaDataTable(); lblObservacao.Text = UtilBO.GetErroMessage("É necessário incluir no mínimo dois níveis curriculares.", UtilBO.TipoMensagem.Informacao); lblObservacao.Visible = true; VS_Aux_Dois_Niveis++; } else { AdicionaLinhaDataTable(); // Edita última linha. indexEdit = VS_Dt_Niveis.Count() - 1; } lblMsgGrid.Visible = false; // Habilita textbox para alterar o nível. grvNiveis.EditIndex = indexEdit; grvNiveis.DataSource = VS_Dt_Niveis; grvNiveis.DataBind(); grvNiveis.Rows[indexEdit].Focus(); // Desabilita botões até salvar esse novo registro. btnIncluir.Visible = false; btnIncluir2.Visible = false; EscondeBotoes(); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar incluir o nível de orientação curricular.", UtilBO.TipoMensagem.Erro); } }