Pergunta

Eu tenho 3 webparts que juntas criarão uma tabela com dados nela.As webparts funcionam da seguinte maneira:LoginWP:Um usuário pode inserir nome de usuário e senha em 2 campos de texto e clicar em um botão de login.Isso ativa a função de login.Esta webpart agora fornecerá um ticket que é usado para verificar se o usuário está logado.

TipoWP:Esta web part é ativada quando o LoginWP pode fornecer uma webpart e usa esse ticket de login para obter tipos de documentos e carregá-los em um ComboBoxList.Se um tipo de documento for selecionado, esta webpart fornecerá o ticket e o tipo de documento.

TabelaWP:Esta web part será ativada quando o TypeWP fornecer um ticket e um tipo de documento.Ele usa ambas as variáveis ​​para carregar dados na tabela.

Quando o botão de login é clicado, o TypeWP selecionará automaticamente um primeiro tipo de documento e, assim, ativará o TableWP.Até agora tudo funciona conforme o esperado.Agora, quando eu selecionar um item diferente no ComboBoxList, o TypeWP perderá o LoginWP como seu provedor e, portanto, perderá seu provedor.

Após alguma depuração consegui descobrir que o CreateChildControls() do TypeWP é chamado quando altero o comboboxitem selecionado.neste CreateChildControls ele verifica se o provedor LoginWP existe.Neste ponto isso não acontece e a função para.A próxima função chamada é CreateChildControls do LoginWP e cria o provedor que TypeWP estava procurando.

Então minha pergunta é:Como posso evitar que o loginWP se recrie quando eu encontrar o item selecionado na caixa de combinação ou posso salvar a variável do ticket em outro lugar para que fique disponível enquanto o usuário estiver na página?

Foi útil?

Solução

Rastreei o erro e usei o

CreateChildControls()

e a

OnPreRender()

funciona errado causando o erro.Verifiquei o provedor dentro da função CreateChildControl.Mas como a função CreateChildControl do provedor ainda não foi chamada, não foi possível encontrá-la.Mover a verificação e a chamada da variável para OnPreRender resolveu o erro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top