none
Dificuldade de esconder parte de um formulário com UserControl RRS feed

  • Pergunta

  • Tenho um formulário chamado frmCadastroBens que declara um UserControl, que chamo de wucCadastroBens. Nesse formulário eu registro os UC assim:

    <%@ Register src="WUC/wucCadastroBens.ascx" tagname="wucCadastroBens" tagprefix="uc1" %>
    <%@ Register src="WUC/wucCadastroBens.ascx" tagname="wucCadastroBens" tagprefix="uc2" %>
    <%@ Register src="WUC/wucCadastroBens.ascx" tagname="wucCadastroBens" tagprefix="uc3" %>

    E depois assim:

    <uc1:wucCadastroBens ID="wucCadastroBensNovoPV" runat="server" />
        <br />
        <uc2:wucCadastroBens ID="wucCadastroBensUsadosPV" runat="server" />
        <br />
        <asp:RadioButtonList RepeatDirection="Horizontal" ID="rdbGarantiaConfissao" runat="server" RepeatLayout="Flow" RepeatColumns="0" CellSpacing="-1">
            <asp:ListItem Text="Confissão de Dívida " Value="1"></asp:ListItem>
            <asp:ListItem Text="Garantia Adicional"  Value="2"></asp:ListItem>
        </asp:RadioButtonList>
        <uc3:wucCadastroBens ID="wucCadastroConfissaoDividaPV" runat="server" />

    Acontece que eu preciso, no momento de clicar no botão CadastrarNovo, eu esconder os demais UC, deixa eu explicar. É apenas um UC, registrado da forma como falei acima. Quando eu estiver no uc1, eu devo mostrar o Painel de Cadastro e esconder os demais. O problema que é um painel apenas e esse método está dentro do wucCadastroBens.cs e não no frmCadastroBens.cs. Se estivesse dentro do frmCadastroBens.cs, eu faria assim: wucCadastroBensUsadosPV.Visible = false; isso daria certo, mas acontece que eu estou dentro do wuc e não consigo mais ter "3" "painéis", por exemplo, como eu tenho no frmCadastrBens. Então vem a pergunta: Como eu posso fazer, para que no momento de cadastrar um bem novo, eu esconder os demais painéis(um para cada wuc registrado no frmCadastroBens). No momento quando a página é carregada, fica aparecendo os três painéis.

    Um colega em outro forum postou isso como solução:

    Tente fazer o seguinte: Em frmCadastroBens.cs adicione um metodo publico que altere a visibilidade dos UserControl.

    public void setUCVisible(wucCadastroBens userControl) { ... }

    Então dentro do UserControl, faça o seguinte:

    var parent = this.Parent as frmCadastroBens;
    parent.setUCVisible(this);

    E está dando esse erro:

     Object reference not set to an instance of an object. 

    Alguém sabe o que fazer?

    • Movido Durval Ramos segunda-feira, 2 de fevereiro de 2015 17:06 Motivo: Aumentar possibilidade de solução
    segunda-feira, 2 de fevereiro de 2015 17:00

Respostas

  • Reswolvido. faltou o Page. ficou assim:

    ar parent = this.Parent.Page as frmCadastroBens;
    parent.setUCVisible(this);

    • Marcado como Resposta pnet segunda-feira, 2 de fevereiro de 2015 17:16
    segunda-feira, 2 de fevereiro de 2015 17:16