none
Preencher valores do linq em textbox's RRS feed

  • Pergunta

  • Seguinte galera, estou fazendo uma consulta no banco de Dados que retorna até 5 itens "strings" mas pode retornar 1, 2, 3 e etc... tenho 5 textboxs aqui na minha página, tenho que preenche-los de acordo com meu retorno, porém o meu xefe disse que meu código ta muito feio, e realmente tá, alguém tem uma solução ai por favor? vou postar ocmo fiz no codebehin e no asp.net vlw.

    asp.net

     <table>
                <tr>
                    <td style="width: 40px">
                        <asp:TextBox Width="30px" ID="textBoxPrazoEnvio1" runat="server" ValidationGroup="group"></asp:TextBox>
                    </td>
                    <td style="width: 40px">
                        <asp:TextBox Width="30px" ID="textBoxPrazoEnvio2" runat="server" ValidationGroup="group"></asp:TextBox>
                    </td>
                    <td style="width: 40px">
                        <asp:TextBox Width="30px" ID="textBoxPrazoEnvio3" runat="server" ValidationGroup="group"></asp:TextBox>
                    </td>
                    <td style="width: 40px">
                        <asp:TextBox Width="30px" ID="textBoxPrazoEnvio4" runat="server" ValidationGroup="group"></asp:TextBox>
                    </td>
                    <td style="width: 40px">
                        <asp:TextBox Width="30px" ID="textBoxPrazoEnvio5" runat="server" ValidationGroup="group"></asp:TextBox>
                    </td>
                    <td style="width: 135px">
                    </td>
                    <td>
                        <asp:TextBox ID="textBoxPrazoRecuperarDados" Width="80px" runat="server"></asp:TextBox>
                    </td>
                </tr>
            </table>
    codebehin
     private void CarregarTextBox()
            {
                wcf_ROP.Parametro.EstruturaParametro estruturaParametro = null;
                wcf_ROP.Parametro.ParametroClient wcfParametro = null;
                try
                {
                    estruturaParametro = new wcf_ROP.Parametro.EstruturaParametro();
                    wcfParametro = new wcf_ROP.Parametro.ParametroClient();
    
                    estruturaParametro = wcfParametro.ListarParametros(0, descricaoCincoCombos, null, null);
    
                    if (estruturaParametro.IndicadorErro == 0 && estruturaParametro.Parametros.Length > 0)
                    {
                        var result = estruturaParametro.Parametros.OrderBy(p => Convert.ToInt32(p.ConteudoParamentro)).ToList();
    
    
                        if (estruturaParametro.Parametros.Length >= 1)
                            textBoxPrazoEnvio1.Text = result[0].ConteudoParamentro == null ? string.Empty : result[0].ConteudoParamentro;
    
                        if (estruturaParametro.Parametros.Length >= 2)
                            textBoxPrazoEnvio2.Text = result[1].ConteudoParamentro == null ? string.Empty : result[1].ConteudoParamentro;
    
                        if (estruturaParametro.Parametros.Length >= 3)
                            textBoxPrazoEnvio3.Text = result[2].ConteudoParamentro == null ? string.Empty : result[2].ConteudoParamentro;
    
                        if (estruturaParametro.Parametros.Length >= 4)
                            textBoxPrazoEnvio4.Text = result[3].ConteudoParamentro == null ? string.Empty : result[3].ConteudoParamentro;
    
                        if (estruturaParametro.Parametros.Length == 5)
                            textBoxPrazoEnvio5.Text = result[4].ConteudoParamentro == null ? string.Empty : result[4].ConteudoParamentro;
                    }
                    else
                        Master.Mensagem = new MB.RUF.InterfacePadrao.Mensagem.Mensagem(TipoMensagem.Erro, string.Format("{0} - {1}", estruturaParametro.CodigoErro, estruturaParametro.DescricaoErro));
                }
                catch (Exception ex)
                {
                    Master.Mensagem = new MB.RUF.InterfacePadrao.Mensagem.Mensagem(TipoMensagem.Notificacao, ex.Message);
                }
                finally
                {
                    if (wcfParametro != null && wcfParametro.State == System.ServiceModel.CommunicationState.Opened)
                        wcfParametro.Close();
    
                    wcfParametro = null;
                    estruturaParametro = null;
                }
            }

    Funciona, mas ele quer que eu ponha usando um foreach com controlfind e etc... nao sei como fazer, alguém ai sabe? abras

    terça-feira, 29 de outubro de 2013 16:18

Respostas

  • Ele não deve ta achando nada no FindControl!!! deve ta vindo null!

    Fúlvio Cezar Canducci Dias

    • Sugerido como Resposta Giovani Cr sexta-feira, 1 de novembro de 2013 14:05
    • Marcado como Resposta Giovani Cr quarta-feira, 6 de novembro de 2013 17:02
    terça-feira, 29 de outubro de 2013 19:03

Todas as Respostas

  • Nossa rs, supondo que você tem sua variável já carregada no linq faz assim :

    //supondo que se chama list seu retorno do linq
    
    int cont = 1;
    
               foreach (var item in lista)
               {
                   TextBox txt = this.FindControl("txtPrazoEnvio"+cont) as TextBox;
                   txt.Text = item.ToString();
                   cont++;
               }

    • Sugerido como Resposta Daniel Brito br terça-feira, 29 de outubro de 2013 16:44
    terça-feira, 29 de outubro de 2013 16:44
  • Então, na hora que eu vou atribuir o valor ao txt.Text ele da a mensagem:

    Object reference not set to an instance of an object.
    terça-feira, 29 de outubro de 2013 17:08
  • Você não criou a instancia de sua lista vc instanciou ?
    terça-feira, 29 de outubro de 2013 17:39
  • Ele não deve ta achando nada no FindControl!!! deve ta vindo null!

    Fúlvio Cezar Canducci Dias

    • Sugerido como Resposta Giovani Cr sexta-feira, 1 de novembro de 2013 14:05
    • Marcado como Resposta Giovani Cr quarta-feira, 6 de novembro de 2013 17:02
    terça-feira, 29 de outubro de 2013 19:03