none
Como acessar um campo do Repeater pai dentro do Repeater filho RRS feed

  • Pergunta

  • Boa tarde pessoal. Quem pode me ajudar.

    No momento do Item_DataBound filho conforme abaixo eu gostaria de acessar um Dropdonwnlist que fica no Repeater Pai.

    Eu estou fazendo dessa forma abaixo e consigo acessar o primeiro item e o segundo referente aos campos do Repeater Pai  eu não consigo acessar. Porque?

    (PendenciasRepeater.Controls[contador].Controls[contador].FindControl("btnsalvar") as Button).Enabled = false;
    (PendenciasRepeater.Controls[contador].Controls[contador].FindControl("ddlfunc") as DropDownList).Enabled = false;

    O Codigo do item_databound filho está da seguinte forma:


    int contador = 0;

                                                                

    protected void ProdutosRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    QTD += Int32.Parse(DataBinder.Eval(e.Item.DataItem, "Qtdpen").ToString());

                    objListarentradaeprodutoinventario = null;
                    objListarentradaeprodutoinventarioDAO = null;
                    objListarentradaeprodutoinventario = new Listarentradaeprodutoinventario();
                    objListarentradaeprodutoinventarioDAO = new ListarentradaeprodutoinventarioDAO();
                    sql = " where Id__pr1='" + ((Label)e.Item.FindControl("lblIdprodutopen")).Text
                         + "' and evi_es1='1' and qua_es1>0  order by Cod_ep1 desc limit 1 ";
                         objListarentradaeprodutoinventario = objListarentradaeprodutoinventarioDAO.obterpendencias(sql);

                    if (objListarentradaeprodutoinventario != null)
                    {
                        if (objListarentradaeprodutoinventario.Cod_ep1.ToString() != "" && objListarentradaeprodutoinventario.Disp.ToString() != "" && objListarentradaeprodutoinventario.Cod_ep1.ToString() != "0" && objListarentradaeprodutoinventario.Disp.ToString() != "0")
                        {
                            ((Label)e.Item.FindControl("lblentrada")).Text = objListarentradaeprodutoinventario.Cod_ep1.ToString(); ;
                            ((Label)e.Item.FindControl("lblestoque")).Text = objListarentradaeprodutoinventario.Disp.ToString(); ;
                            ((Label)e.Item.FindControl("lbllote")).Text = objListarentradaeprodutoinventario.Nlo_es1.ToString();
                            ((Label)e.Item.FindControl("lblvalidade")).Text = objListarentradaeprodutoinventario.Dva_es1.ToString();

                            if (Int32.Parse(objListarentradaeprodutoinventario.Disp.ToString()) >= Int32.Parse(((Label)e.Item.FindControl("lblQTDpen")).Text))
                            {
                                rptpendenciascolor(verde, e);

                            }
                            else
                            {
                                rptpendenciascolor(azul, e);

                            }
                        }
                        else
                        {
                            rptpendenciascolor(vermelho, e);
                            ((Label)e.Item.FindControl("lblentrada")).Text = "0";
                            ((Label)e.Item.FindControl("lblestoque")).Text = "0";
                            ((Label)e.Item.FindControl("lbllote")).Text = "0";
                            ((Label)e.Item.FindControl("lblvalidade")).Text = "0";

                        }
                    }

                }
                else if (e.Item.ItemType == ListItemType.Footer)
                {
                    (e.Item.FindControl("lbltotQtd") as Label).Text = QTD.ToString();
                    QTD = 0;
                    contador = contador + 1;
                }

                (PendenciasRepeater.Controls[contador].Controls[contador].FindControl("btnsalvar") as Button).Enabled = false;
                (PendenciasRepeater.Controls[contador].Controls[contador].FindControl("ddlfunc") as DropDownList).Enabled = false;
            }


    Fabricio

    quinta-feira, 13 de junho de 2019 18:48

Respostas

  • Bom dia pessoal.

    Segue a solução

    Dentro do Repeater Filho que é o Produtos é só colocar a seguinte linha de programação:

    var itensPai = e.Item.Parent.Parent;
    DropDownList DropddlfuncPai = (DropDownList)itensPai.FindControl("ddlfunc");

    Dessa forma você consegue acessar os campos.

    Vlw pessoal Abs.

    Administrador do grupo mereço uma medalha e uns pontos. Ninguém respondeu :)


    Fabricio

    • Marcado como Resposta Fabriciovale sexta-feira, 14 de junho de 2019 12:32
    sexta-feira, 14 de junho de 2019 12:32