none
Percorrendo controles e adiconando um MaskedEditExtender RRS feed

  • Pergunta

  • Ola sou novo por aqui e gostaria de saber se alguem poderia me ajudar?!
    Criei uma função para percorrer todos os TextBox dentro de um updatePanel na minha MasterPage, com o objetivo de colocar dinameicamente uma mascara com o MaskedEditExtender, a te ai tudo bem, ao debugar enxergo que consigo pegar todos os controles TextBox, mas esta dando o seguinte erro no final do processo:

    Referência de objeto não definida para uma instância de um objeto.

    [NullReferenceException: Referência de objeto não definida para uma instância de um objeto.]
    AjaxControlToolkit.MaskedEditExtender.OnLoad(EventArgs e) in d:\E\AjaxTk-AjaxControlToolkit\Release\AjaxControlToolkit\MaskedEdit\MaskedEditExtender.cs:92
    System.Web.UI.Control.LoadRecursive() +50
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

    segue o codigo da função:
    private void FormatarCampo(Control objCtrFormulario)
        {
            int i = 0;
            foreach (Control objCtrFrom in objCtrFormulario.Controls)
            {
                if (objCtrFrom is UpdatePanel)
                {
                    foreach (Control objUpdatePanel in ((UpdatePanel)objCtrFrom).Controls)
                    {
                        foreach (Control objUpnPanel in objUpdatePanel.Controls)
                        {
                            if (objUpnPanel is TextBox)
                            {
                                i++;
                                TextBox objText = (TextBox)objUpnPanel;
                                MaskedEditExtender maskeEdit = new MaskedEditExtender();
                                maskeEdit.TargetControlID = objText.ID.ToString();
                                maskeEdit.ID = i.ToString() + "_maskEdit";
                                maskeEdit.Mask = "99:99";
                                maskeEdit.MaskType = MaskedEditType.Time;
                                this.Controls.Add(maskeEdit);
                            }
                        }
                    }
                }
            }
        }
    chamo ela da seguinte maneira:

    FormatarCampo(Page.Master.FindControl("ContentPlaceHolder"));

    • Editado IvanSchmitz terça-feira, 16 de junho de 2009 17:49
    segunda-feira, 15 de junho de 2009 20:10

Respostas

Todas as Respostas