none
Postback formview RRS feed

  • Pergunta

  • Pessoal estou com o seguinte problema...
    tenho um formview no qual recebo alguns dados... nele eu tenho um label que recebe um array e apartir deste array eu completo um listbox... porem quando eu mudo pro modo edit eu não consigo fazer a mesma coisa, ele fala que o campo não existe, segue abaixo o meu codigo:

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.QueryString["codigo"] == null)
                {
                    FormView1.DefaultMode = FormViewMode.Insert;
                }
                else
                {
                    FormView1.DefaultMode = FormViewMode.ReadOnly;
    
                    if (((Label)FormView1.FindControl("tbProduto")).Text != "")
                    {
                        string[] produtos = ((Label)FormView1.FindControl("tbProduto")).Text.Split(';');
    
                        foreach (string p in produtos)
                        {
                            ((ListBox)FormView1.FindControl("listProdutos")).Items.Add(new ListItem(p.ToString(), p.ToString()));
                        }
                    }
                }
            }
            else
            {
                FormView1.DefaultMode = FormViewMode.Edit;
     
                if (FormView1.DefaultMode == FormViewMode.Edit)
                {
                    if (((Label)FormView1.FindControl("tbProduto")).Text != "")
                    {
                        string[] produtos = ((Label)FormView1.FindControl("tbProduto")).Text.Split(';');
    
                        foreach (string p in produtos)
                        {
                            ((ListBox)FormView1.FindControl("listProdutos_update")).Items.Add(new ListItem(p.ToString(), p.ToString()));
                        }
                    }
                }
            }
        }
    o problema é que quando ele da o postback ele ainda não esta no modo edit... tentei forçar isto ~mas mesmo assim não funcionou... alguem tem uma ideia de como posso fazer isso, mudar o modo de ReadOnly para Edit e completar o listbox????
    terça-feira, 27 de outubro de 2009 12:41

Respostas

  • Olá,

    O que dá para vc fazer e salvar esses valores numa variável na viewstate.

    ex
    public string MinhaVariavel
        {
            get
            {
                if (ViewState["MinhaVariavel"] != null)
                    return ViewState["MinhaVariavel"].ToString();
                else
                    return "";
            }

            set
            {
                ViewState.Add("MinhaVariavel", value);
            }
        }


    depois vc pegar e setá na sua label do formview assim vc não vai perder os valores no postback.
    terça-feira, 27 de outubro de 2009 12:59
    Moderador
  • Olá veja se pega os valores no databound do formview.
    • Marcado como Resposta hbauer quinta-feira, 29 de outubro de 2009 17:05
    terça-feira, 27 de outubro de 2009 16:03
    Moderador

Todas as Respostas

  • Olá,

    O que dá para vc fazer e salvar esses valores numa variável na viewstate.

    ex
    public string MinhaVariavel
        {
            get
            {
                if (ViewState["MinhaVariavel"] != null)
                    return ViewState["MinhaVariavel"].ToString();
                else
                    return "";
            }

            set
            {
                ViewState.Add("MinhaVariavel", value);
            }
        }


    depois vc pegar e setá na sua label do formview assim vc não vai perder os valores no postback.
    terça-feira, 27 de outubro de 2009 12:59
    Moderador
  • intão, mas o problema não é que estou perdendo os valores... eu tenho um textbox que tem os valores no modo edit do formview tambem, e ele pega o valor certinho, mas ele fica assim:  1;34;12;9;5;87 eu preciso pegar essa string, transformar em um array para depois disto eu colocar no listbox... o problema é que quando eu estou no modo ReadOnly e mudo pro Edit eu não consigo pegar o valor do textbox pelo menos não no Page_Load pois ele ainda não mostra o formview como sendo modo Edit
    terça-feira, 27 de outubro de 2009 13:17
  • Olá veja se pega os valores no databound do formview.
    • Marcado como Resposta hbauer quinta-feira, 29 de outubro de 2009 17:05
    terça-feira, 27 de outubro de 2009 16:03
    Moderador
  • Boa Tarde Hbauer.

    Faça o que o Seilor falou acima, armazenar em viewstate, antes da mudança de "modo" e monte seu list baseado na variavel armazenada não no valor do campo.

    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    Atenciosamente,
    Harley Araujo
    quinta-feira, 29 de outubro de 2009 15:51