Array
(
)

Percorrer um FormView

Ricardo Silva
   - 21 jan 2008

Aguem sabe como percorrer um formView.
to tentando algo assim...
#Código

protected void Page_Load(object sender, EventArgs e) {
        foreach(TemplateField item in FormView1.ItemTemplate) {
            for(int i = 0; i > item.Controls.Count; i++) {
                if(item.Controls[0].Controls[i] is TextBox) {
                   (FormView1.Controls[0].Controls[i] as TextBox).Attributes.Add("onFocus", "this.className=´CaixaTextoDestaque´;");
                    (FormView1.Controls[0].Controls[i] as TextBox).Attributes.Add("onBlur", "this.className=´CaixaTextoNormal´;");
                }
            }
        }
    }

soh preciso montar o foreach depois eu vou debugando pra montar.

Ricardo Silva
   - 21 jan 2008

Galera pra explicar Melhor eu tenho uma função em winAplication que percorre todos os componentes de um determinado formulario se ele for um TextBox então ele limpa a propriedade Text
EX win:
#Código

public static void limpaCampos(Form formCorrente) {
            for(int i = 0; i < formCorrente.Controls[1].Controls.Count; i++) {
                if(formCorrente.Controls[1].Controls[i] is TextBox)  {
                    (formCorrente.Controls[1].Controls[i] as TextBox).Clear();
                }
                if(formCorrente.Controls[1].Controls[i] is MaskedTextBox) {
                    (formCorrente.Controls[1].Controls[i] as MaskedTextBox).Clear();
                }
            }             
        }


eu quero fazer o mesmo soh que em um FormView do ASP, se for um TextBox entaum eu adiciono um atributo...

Espero ter cido mais claro

Ricardo Silva
   - 21 jan 2008

Galera teoricamente parece facil, mas como eu naum conheço a fundo o componente do FormView eu fiz um pequeno Poguizinho atravez de varios debugs
segue ai...
#Código

protected void FormView1_ItemCreated(object sender, EventArgs e) {
        //Verifica se esta no tempolade de Inserção
        if(FormView1.CurrentMode == FormViewMode.Insert) {
            //percorre todo os componentes do template Insert
            for(int i = 0;i < this.FormView1.Controls[0].Controls[1].Controls[0].Controls.Count; i++) {
                //verifica se o componente é um TextBox
                if((this.FormView1.Controls[0].Controls[1].Controls[0].Controls[i] is TextBox)) {
                    // SE for um TextBox seta a propriedade Text
                    (this.FormView1.Controls[0].Controls[1].Controls[0].Controls[i] as TextBox).Text = "teste";
                }
            }
        }
    }

creio que essa naum é a melhor forma de percorrer um componente no formView, mas eu passei a tarde inteira pesquisando nos foruns e naum axei nada parecido, mas aki ta funcionando... logicamnete que eu estou setando um atributo via JScript, se alguem puder melhorar isso ai ficarei grato...

RicaJedidia