protected void btnNovoItemHabilidade_Click(object sender, ImageClickEventArgs e) { try { // Utilizado na validação de habilidade ImageButton btn = (ImageButton)sender; RepeaterItem rptItemValidacao = (RepeaterItem)btn.NamingContainer; Repeater rptValidacao = (Repeater)rptItemValidacao.NamingContainer; foreach (RepeaterItem item in rptValidacao.Items) { TextBox txtHabilidade = (TextBox)item.FindControl("txtDescricao"); if (string.IsNullOrEmpty(txtHabilidade.Text)) { throw new ValidationException("Habilidade é obrigatório."); } } Repeater rptItem; ORC_Conteudo_Cadastro conteudo = RetornaConteudo(sender, out rptItem); List <ORC_Habilidades> listHabilidades = conteudo.listHabilidades; // Novo item. ORC_Habilidades novoItem = new ORC_Habilidades { obj_id = conteudo.entConteudo.obj_id , ctd_id = conteudo.entConteudo.ctd_id }; listHabilidades.Add(novoItem); // Seta flag que indica se o item do Objetivo é o que está sendo editado. editandoItemObjetivo = true; rptItem.DataSource = listHabilidades; rptItem.DataBind(); } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar adicionar item de conteúdo.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Retorna os conteúdos cadastrados dentro da linha do objetivo. /// </summary> /// <param name="container">Linha do objetivo</param> /// <returns></returns> private List <ORC_Conteudo_Cadastro> RetornaConteudos(RepeaterItem container) { List <ORC_Conteudo_Cadastro> lista = new List <ORC_Conteudo_Cadastro>(); Repeater rptConteudos = (Repeater)container.FindControl("rptConteudos"); foreach (RepeaterItem item in rptConteudos.Items) { ORC_Conteudo_Cadastro entConteudos = RetornaConteudoCadastro(item); if ((entConteudos.listItensConteudo.Count > 0) || (entConteudos.listHabilidades.Count > 0) || (entConteudos.listPeriodos.Count > 0)) { lista.Add(entConteudos); } } return(lista); }
protected void btnAdicionarConteudo_Click(object sender, EventArgs e) { try { // Utilizado na validação de item do conteúdo e de habilidade Button btn = (Button)sender; RepeaterItem rptItemConteudoValidacao = (RepeaterItem)btn.NamingContainer; Repeater rptItemValidacao = (Repeater)rptItemConteudoValidacao.FindControl("rptConteudoItem"); foreach (RepeaterItem item in rptItemValidacao.Items) { TextBox txtItem = (TextBox)item.FindControl("txtDescricao"); if (string.IsNullOrEmpty(txtItem.Text)) { throw new ValidationException("Item do conteúdo é obrigatório."); } } Repeater rptHabilidadeValidacao = (Repeater)rptItemConteudoValidacao.FindControl("rptHabilidades"); foreach (RepeaterItem item in rptHabilidadeValidacao.Items) { TextBox txtHabilidade = (TextBox)item.FindControl("txtDescricao"); if (string.IsNullOrEmpty(txtHabilidade.Text)) { throw new ValidationException("Habilidade é obrigatório."); } } // Adicionar item de conteúdo na lista de dados. Repeater rptContainer = RetornaRepeaterBotao(sender); List <ORC_Conteudo_Cadastro> lista = new List <ORC_Conteudo_Cadastro>(); // Se o botão está dentro do repeater de objetivos - não tem item no repeater de conteúdo. if (!rptContainer.ID.Equals(rptObjetivos.ID)) { foreach (RepeaterItem item in rptContainer.Items) { lista.Add(RetornaConteudoCadastro(item)); } } int obj_id = -1; if (lista.Count > 0) { ORC_Conteudo ent = lista.FindLast(p => p.entConteudo != null).entConteudo; if (ent != null) { obj_id = ent.obj_id; } } // Verifica a qtde de conteúdos cadastrados var x2 = from ORC_Conteudo_Cadastro cad in lista select cad.entConteudo; // Gera um novo id para o conteúdo (utilizado apenas na tela) int ctd_id = x2.Count() + 1; ORC_Conteudo_Cadastro novoItem = CriaNovoConteudo(obj_id, ctd_id); lista.Add(novoItem); listaConteudoCadastro = lista; var x = from ORC_Conteudo_Cadastro cad in lista select cad.entConteudo; // Seta flag que indica se o item do Objetivo é o que está sendo editado. editandoItemObjetivo = true; Repeater rptConteudos = rptContainer; if (rptContainer.ID.Equals(rptObjetivos.ID)) { RepeaterItem itemObjetivo = RetornaRepeaterItemBotao(sender); rptConteudos = (Repeater)itemObjetivo.FindControl("rptConteudos"); } // Dá o dataBind no repeater, e seta a propriedade Visible no botão de adicionar conteúdo. rptConteudos.DataSource = x; AtualizaRepeaterConteudos(rptConteudos, (RepeaterItem)rptConteudos.NamingContainer); RepeaterItem rptItem = (RepeaterItem)rptConteudos.NamingContainer; // Seta flag que indica se o item do Objetivo é o que está sendo editado. editandoItemObjetivo = true; // Atualiza o rowSpan da coluna de objetivos. HtmlTableCell tdObj = (HtmlTableCell)rptItem.FindControl("tdObj"); tdObj.RowSpan = x.Count() + 1; listaConteudoCadastro = null; } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar adicionar item de conteúdo.", UtilBO.TipoMensagem.Erro); } }