Pergunta

Estou tendo um pequeno problema com esta configuração aqui eu tenho uma lista de arquivos .ascx e todos eles fazem tarefas diferentes em termos de cálculos para o próprio controlador. Então, na minha página .aspx eu clicar em um Ajax.ActionLink() e isso vai tornar esse arquivo específico .ascx com base no item I clicado. Dentro desse .ascx são 1-3 eventos que irá disparar 2 deles são eventos onclick e 1 é onload. O evento onclick (s) são mais fáceis de trabalhar com em termos de I pode codificá-lo diretamente no evento controles como assim onclick="$("#toggleMe3").slideToggle("slow");" eo onload deve ser executado quando o .ascx é carregado eu estava testando isso em uma chamada $(document).ready(function(){});, esta multa trabalha no página .aspx mas assim que eu tente adicioná-lo para a página de .aspx não carregar e seu ideal de que isso funciona, mas não tenho idéia por que não. Na verdade nada no script marcas trabalho, se eu inserir diretamente na página .ascx eles só funcionam se codificado em eventos do controle, bem alguns deles, pelo menos; o onload e onprerender não fazer fogo.

Foi útil?

Solução

Eu tive o mesmo problema, depois roteiro postback parcial especificado em $ (document) .ready não foi executado. Eu encontrei solução aqui MSDN - PageRequestManager Classe

Looks como a adição de um script como a seguir corrige o problema

<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>

Outras dicas

Eu tive sucesso usando .ready (documento) $ em meus parciais que são carregados via XHR. São os pontos de vista que você está carregamento via XHR jogando exceções JavaScript? Ou será que eles contêm malformado HTML?

Eu normalmente tenho o meu $ (document) .ready método na parte inferior da minha parcial que eu carga via Ajax, como ...

<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>

Eu tive dificuldade em entender a sua pergunta ... mas aqui vai.

Se você é data de carregamento utilizando chamadas AJAX, o $ (document) .ready evento () não irá fogo - porque a página já estava carregado. Você está apenas carregar mais dados agora.

Se você já sabe os controles que vai aparecer, pré-carregar o JavaScript, mas em vez de apenas ligação usando o manipulador de eventos clique, usar o manipulador ao vivo.

para

$("#myControl").click(....);

transforma em

 $("#myControl").live("click", ....);

Desculpe se isso não é o que você estava procurando.

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