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