none
FindControl RRS feed

  • Pergunta

  • Espero que alguém me ajude hehe

    Então, eu tenho 1 checkbox e quero colocar o status dele em uma label, porém quando uso o FindControl, ele me retorna o erro abaixo:

    Object reference not set to an instance of an object.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error: 
    Line 15: 
    Line 16:             CheckBox Approval1 = (CheckBox)RadGrid1.FindControl("rApproval1");
    Line 17:             string strApproval1 = Approval1.ToString();

    E quando uso o 

    string strApproval1 = Convert.ToString(Approval1);

    Não retorna nada.

    Alguém tem alguma solução?

    quarta-feira, 29 de agosto de 2012 02:27

Respostas

  • OU CASO NÃO SEJA O QUE VOCE QUER, TENTE ISSO:

    For Each r as GridViewRow In Me.gv.Rows

       Dim checkBox as checkBox = CType(r.FindControl("NomeDoCheckBox"), checkBox)

       If r.cells(nº da coluna q está uma das checkbox do banco).Text = True and r.cells(nº da coluna q está a outra checkbox do banco).Text = True then

         checkBox.Checked = True

       Else

        CheckBox.Checked = False

    End If

    Abç

    • Marcado como Resposta Harley Araujo quinta-feira, 30 de agosto de 2012 11:18
    quinta-feira, 30 de agosto de 2012 04:47

Todas as Respostas

  • Boa noite amigo, tudo blz?

    Você que pegar o status do checkbox certo? seria true ou false e quer colocar em uma label? é isto?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 29 de agosto de 2012 02:45
  • Correto!

    Em detalhes é o seguinte... no sistema tem 2 CheckBox que pega True ou False do Banco de Dados. O terceiro CheckBox não pega nada do banco de dados, porém tem que ficar como marcado se esses 2 CheckBox estiverem como True.

    Object reference not set to an instance of an object.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error: 
    Line 21:         {
    Line 22:             CheckBox chkbx = (CheckBox)item.FindControl("rApproval2");
    Line 23:             chkbx.Checked = true;
    Line 24:         }    
    Line 25:     }

    quarta-feira, 29 de agosto de 2012 02:49
  • Esse FindControl que vc ta fazendo esta dentro de qual evento?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 29 de agosto de 2012 03:02
  • Raffael, você está tentando converter um valor CheckBox em string e isso não é possível, geralmente, o controle CheckBox retorna um valor True or False.

    Se o controle estiver checked, resultado1 = true, senão, false.

    bool resultado1 = Approval1.Checked;

    if(resultado1 == True)

    string Texto = "Resultado TRUE";

    else

    string Texto = "Resultado FALSE";


    quarta-feira, 29 de agosto de 2012 11:16
  • Não estou conseguindo resolver... a questão é a seguinte... tenho os campos abaixo:

    <telerik:GridTemplateColumn>
                        <ItemTemplate>
                            <asp:CheckBox runat="server" ID="ckbApproval" Enabled="false" ></asp:CheckBox>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>

                    <telerik:GridCheckBoxColumn DataField="rApproval1" 
                        FilterControlAltText="Filter rApproval1 column" HeaderText="Approval 1" 
                        SortExpression="rApproval1" UniqueName="rApproval1">
                    </telerik:GridCheckBoxColumn>

                    <telerik:GridCheckBoxColumn DataField="rApproval2" 
                        FilterControlAltText="Filter rApproval2 column" HeaderText="Approval 2" 
                        SortExpression="rApproval2" UniqueName="rApproval2">
                    </telerik:GridCheckBoxColumn>

    O primeiro campo não pega dado nenhum do banco de dados, mas os outros 2 sim. Caso o rApproal1 e o rApproval2 estejam como true (checked), então o ckbApproval tem que ficar como checked também.

    quarta-feira, 29 de agosto de 2012 14:54
  • Rafael, faz o seguinte:

    no lugar de ""strApproval1 = Convert.ToString(Approval1);"" coloca:

    Session("string strApproval1") = Convert.ToString(Approval1);

    A Session("string strApproval1")  é tipo uma variável. o valor fica armazenada nela, mesmo que voce mude de webform.

    quinta-feira, 30 de agosto de 2012 04:20
  • Ai é só voce colocar o valor numa label.

    ex:

    lbPegaValorChecBox.Text = Session("string strApproval1")

    quinta-feira, 30 de agosto de 2012 04:21
  • OU CASO NÃO SEJA O QUE VOCE QUER, TENTE ISSO:

    For Each r as GridViewRow In Me.gv.Rows

       Dim checkBox as checkBox = CType(r.FindControl("NomeDoCheckBox"), checkBox)

       If r.cells(nº da coluna q está uma das checkbox do banco).Text = True and r.cells(nº da coluna q está a outra checkbox do banco).Text = True then

         checkBox.Checked = True

       Else

        CheckBox.Checked = False

    End If

    Abç

    • Marcado como Resposta Harley Araujo quinta-feira, 30 de agosto de 2012 11:18
    quinta-feira, 30 de agosto de 2012 04:47