Usuário com melhor resposta
Travar código form ao abrir modal

Pergunta
-
Possuo um modal boostrap que funciona perfeitamente, chamo ele no c# code-behind, dessa forma:
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$(function() {openModalExclusao();});", true);
E essa é a função pra abrir:
function openModalExclusao() { $("#modalexclusao").modal('show'); }
Porém eu preciso que ele pare a execução do código quando o modal for aberto, e só continuar quando ele for fechado, dessa forma ele executa o código depois deste abrindo o modal normal, preciso igual é em um projeto desktop, só que que no ASP.NET. Como posso proceder ?
Eu vou fazer uma requisição de senha, por exemplo tal usuário vai excluir, mas ele só pode excluir com a senha do administrador, eu preciso verificar se a senha confere, e se a senha conferir continuar a execução do código:
if (senha.existesenha == 1) { ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$(function() {openModalExclusao();});", true); if (senha.confere == 1) { clsdb.ExecutaSQL("delete tabela where id =" + ID); } }
Só que antes de ter o retorno do confere,ele ja continua o código e não executa o delete. Porque o retorno do confere, está no click do button do modal.- Editado Mariana C. Costa sexta-feira, 13 de abril de 2018 12:36
Respostas
-
Mariana,
Esse link abaixo poderá te ajudar. Tem 4 artigo mostrando como fazer a janela modal sem travar.
https://ecode10.com/Pesquisar?q=modal
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta Filipe B CastroModerator quarta-feira, 2 de maio de 2018 20:50
Todas as Respostas
-
Bom dia, Mariana C. Costa. Tudo bem?
Obrigado por usar o fórum MSDN.
Conseguiu algum avanço no teu caso?
Se ainda não, o que precisa?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Eu jaço isso, porém ele não para o código onde peço pra abrir o modal, ele termina de executar, e no caso eu preciso do retorno da senha, pra excluir, só que este código continua mesmo com o modal aberto.
if (senha.existesenha == 1) { ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$(function() {openModalExclusao();});", true); if (senha.confere == 1) { clsdb.ExecutaSQL("delete tabela where id =" + ID); } }
Até o senha.existesenha == 1, funciona certinho, ele abre o modal, porém ao abrir o modal, ele já cai no else, porque como não teve o retorno, ele não entra no senha.confere == 1, por isso eu falo de travar o código.
-
-
Mas a confirmação do código, está logo em seguida de chamar o modal.
if (senha.existesenha == 1) { //aqui abre o modal para digitar a senha ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$(function() {openModalExclusao();});", true); //aqui está continuando a execução, mesmo com o modal aberto, ele deveria esperar a confirmação do click do button do modal, que passa pra variável confere o valor. É como se fosse um desktop, ao abrir um formDialog, ele para a execução, e ao fechar termina a execução do código. if (senha.confere == 1) { clsdb.ExecutaSQL("delete tabela where id =" + ID); } }
Tentei explicar no código pra que você possa entender. Acho que agora ficou melhor a explicação.
-
Então vc vai ter que usar javascript para atualizar o campo na página principal logo que vc fechar o modal .
eu sempre uso campos hidden para fazer isso.
vou te passar um exemplo :
window.opener.document.forms[0].vales.value = document.frmAlteracao.Total.value;
No clique do botão do modal tenho uma function em javascript que o exemplo acima é uma linha dessa function, existem outras mais é a mesma coisa só muda os campos, o que estou fazendo ai
windows,opener.document.forms[0].vales.value é um campo hidden que tenho no modal então estou pegando o valor dele e jogando em outro campo hidden na página principal.
Junior
-
-
Olá Mariana, para que o sistema funcione da maneira que você quer será necessário dividir em 2 métodos.
1. o primeiro método você executa essa chamada if (senha.existesenha == 1) {ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$(function() {openModalExclusao();});", true);}Depois na MODAL que exige a senha de administrador você vai precisar colocar um botão que execute o segundo método onde neste você realiza a conferência da senha.
if (senha.confere == 1) { clsdb.ExecutaSQL("delete tabela where id =" + ID);}
Dessa maneira você vai poder "parar" a leitura do código até obter a informação necessária.
Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
-
Mariana,
Esse link abaixo poderá te ajudar. Tem 4 artigo mostrando como fazer a janela modal sem travar.
https://ecode10.com/Pesquisar?q=modal
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta Filipe B CastroModerator quarta-feira, 2 de maio de 2018 20:50
-
Boa tarde,
Por falta de retorno essa thread está encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.