Pergunta

Eu tenho uma página web ASP.Net, que usa um modelo de página mestra.

A página tem um UpdatePanel com algumas funcionalidades básicas AJAX (alterar o valor de um DropDownList e o UpdatePanel será atualizada). Este é todos trabalhando muito bem.

Eu também tenho um link que aparece uma Modal nyromodal, dentro do modal, outra forma web ASP.Net é carregado .. Porque eu quero esta página em si para ter a sua própria funcionalidade e não ser apenas uma página estática etc. Sua um "Criar novo" diálogo para ser preciso. Então ele cria um novo registro, em seguida, quando ele fecha-lo voltar para a "lista de registros" main page etc.

Eu estou usando o seguinte código jQuery para iniciar as chamadas nyromodal. Este código também inclui vários outros ajustes e configurações para fazer nyromodal mais compatível com ASP.Net, já que esta é sobre a incompatibilidade sucessiva 5ª eu enfrentei e resolvido entre nyromodal e ASP.Net (Lição: Fique longe de ASP.Net)

$(document).ready(function(){
    $(function(){
      $('.modal').live('click', function(evt){
        $(this).nyroModalManual({'blocker':'#aspnetForm',minWidth:640,minHeight:400,endShowContent:function(elt, settings) { $('input:text:first', elt.content).focus(); }});
        evt.preventDefault();
      });
    });
});

Este código está funcionando muito bem (Obrigado Brian) como ele resolve um par de outros problemas com ASP.Net e trabalho nyromodal juntos. É ainda usando o bloqueador: pouco #aspnetForm que pára nyromodal de ir fora da principal forma de postagem do ASP.Net chamado aspnetForm, que se destina a resolver uma quase idêntico problema .

MAS ..

A página web que eu estou carregando a minha modal, é também uma forma web .Net. Por isso, também tem a sua própria base de postback aspnetForm claro. Então, quando as aparece modais e eu usar o Firebug para verificar a estrutura DOM, eu realmente tenho duas formas ASP.Net agora (aninhados). E porque nyromodal é essencialmente apenas um div (ou algumas divs), as tags de formulário são essencialmente aninhados.

Então, eu acho que isso é estragar as coisas um grande momento. É realmente bater IE7 totalmente (exceções fatais). IE7 + FireFox: Quando eu fechar o diálogo, a minha forma web principal não postback mais. Eu acho que foi muito confuso com as 2 marcas de formulário que estavam lá há pouco.

Deve ser uma exigência muito simples de ser capaz de abrir um formulário web ASP.Net como o conteúdo do seu modal usando nyromodal. Eu pôr a culpa em ASP.Net por ser tão coxo e colocar uma tag obrigatória "forma" em todas as páginas. Se eu estava usando PHP, eu não teria experimentado qualquer um desses problemas que eu tive hoje, mas eu estou preso usando ASP.Bloat para fins de trabalho.

Todos os pensamentos ou visão muito apreciada! :)

Foi útil?

Solução

Você já considerou abrir a página no modal como um iFrame para que o seu conteúdo (a nova tag de formulário, etc.) não irá interferir com a página de acolhimento?

$(this).nyroModalManual({type:'iframe'});

Outras dicas

Im realmente a pessoa que relatou essa questão. Em primeiro lugar, tem u tentou o nyroModal ASP.NET plugin que jimbobmcgee (na mesma página u ligado a) desenvolvido? Eu não tenho ainda, como eu coludnt encontrar o tempo para atravessar a documentação contida. Se u fazer tho, deixe-me saber como eu funciona para u.

Este é realmente um timing perfeito ... Outra alternativa, que é o que eu estou no meio de investigar, está usando páginas normais HTML em vez de WebForms do modal. Então, eu pretendo envolver minha código do lado do servidor dentro de um webservice, e usar jQuery para fazer uma chamada para ele, e retornar uma resposta JSON.

Perdoe a precisão da minha explicação, como eu só comecei com webservices e métodos de página, por isso estou muito aprendizado. Daí a razão de eu perguntar para alguém para deixar um simples "Olá Mundo" exemplo.

Espero que ajude um pouco.

Se você colocar isso na cabeça de uma página. Ele permite que Nyro modal fechando para simular uma nova postagem.

<script type="text/javascript">
$(document).ready(function(){$.nyroModalSettings({
  modal: true,minWidth: ###,minHeight: ###,
  endRemove:function(){
   document.location='pageYouWantToRefresh.aspx';
  }    
});});  
</script>

apenas mudança document.location e ele vai lá quando os fecha a janela.

A mais fácil solução que eu encontrei sofar é carregar a janela de pop-up como um iframe, não em linha ou via AJAX. Apenas um pensamento. :)

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