Array
(
)

TextBox não encontrado

Rafaelsv
   - 28 mai 2008

Fala galera! Blz?

Criei um questionário dinâmico, onde vou adicionando controles em um panel (pnlResposta). O questionário é um ascx. O panel está programado conforme abaixo:
#Código

(...)
<fieldset>
                    <asp:Repeater ID="rptPergunta" runat="server" OnItemDataBound="rptPergunta_ItemDataBound">
                        <ItemTemplate>
                            <asp:Panel ID="pnlPergunta" runat="server">
                                <asp:Label ID="lblTituloPergunta" runat="server"></asp:Label>
                                <asp:Label ID="lblIdPergunta" runat="server"></asp:Label>
                                <asp:Panel ID="pnlResposta" runat="server">
                                </asp:Panel>
                            </asp:Panel>
                        </ItemTemplate>
                    </asp:Repeater>
                </fieldset>
<asp:Button ID="btnCancelar" runat="server" Text="Limpar Dados" OnClick="btnLimpar_Click"  CausesValidation="false" />
(...)


No arquivo cs, o código para pegar os campos que o usuário preencheu está assim:
#Código
(...)
foreach (RepeaterItem rptItemPergunta in rptPergunta.Items)
{
               Label lblIdPergunta = (Label)rptItemPergunta.FindControl("lblIdPergunta");
                    Pergunta pergunta = listaPerguntaAux.Find(delegate(Pergunta p1)
                    {
                        return p1.IdPergunta.ToString().Equals(lblIdPergunta.Text);
                    }
                    );

                    if (pergunta != null)
                    {

                        switch (pergunta.TipoPerguntaInt)
                        {
                            case INTEIRO:
                                TextBox txtUnidade = (TextBox)rptItemPergunta.FindControl("txtUnidade");

                                if (cancelar)
                                    txtUnidade.Text = String.Empty;
(...)


A geração do questionário funciona perfeitamente. Quando o botão ´Limpar Dados´ é clicado em uma página que contém somente o questionário, ele é executado sem problemas.
Já qdo uma página contém outros controles, o textbox txtUnidade não é encontrado pelo ´FindControl´ e retorna null.

Alguém sabe pq?