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?