Usando Sim / Não Messagebox em UpdatePanel AJAX
-
22-08-2019 - |
Pergunta
Eu tenho um requisito onde eu pedir usuário para confirmação e também exibir mensagens.
Os programadores utilizados para este eram do Windows formas fundo. Daí ter usado a MsgBox em todos os cantos. Mesmo na parte lógica de negócio eles têm usado os MessageBoxes que exige Sim / Não confirmação estilo do usuário.
Quando testamos o site da máquina remota descobrimos que ele dá erro de usar DefaultDesktopOnly / ServiceNotification. Mas quando testado descobrimos que este é totalmente diferente do que estávamos procurando.
Agora minha exigência é uma caixa de confirmação é mostrada a partir do código como registro Excluir" sim não e com base na resposta tomamos a ação.
Isto é para ser feito usando updatepanel.
Solução
Como você usar esse código em vários lugares, eu sugiro que você faça um controle personalizado, que leva a sua mensagem e exibe e painel de atualização com mensagem e sim / não botões.
Internamente definir algum valor para o sim, não, cancelar ... assim que você começa algo como MessageBox.
Outras dicas
painel de atualização ou não, você vai ter que anexar algum javascript que iria chamar a função javascript confirm()
. Baseado em seu resultado você cancelar o comportamento link / botão padrão javascript ...
Isto lhe dará algo para coçar a cabeça para um começo:
http://www.dotnetfunda.com/tutorials/ajax/updatepanel.aspx
Isso não é realmente uma pergunta, mas uma exigência.
De qualquer forma ... MessageBox é uma função do Windows, não é uma função de HTML ou browser. Agora você pode imitá-los em uma das duas maneiras, através de um javascript função confirmar ou via Sim / Não botões e o evento apropriado.
Uma vez que suas necessidades são para algo que funciona em um painel de atualização eu acho que a fiação até eventos javascript manualmente por isso não vai ser algo que você está confortável, então eu sugiro um asp: Painel interior o UpdatePanel que tem botões Sim e não, com eventos paralelos servidor vinculados a eles. Na lógica UpdatePanel mostrar isso quando você quer confirmação e ocultar tudo o resto, a agir em conformidade.
Se você quer fazer confirma do lado do servidor, você vai entrar em geração de código mais complicado. Primeiro de tudo, você terá duas vistas . O primeiro tem um link / botão Excluir , mas vai ser realmente apenas um postback para o segundo ponto de vista que irá exibir a confirmação form com sim / não. Nesta forma, o seu Sim botão vai ser realmente o seu Excluir ação ...
Mas eu ainda escolhi um híbrido (especialmente se esta é uma grade que estamos falando) de javascript e serverside (desde alert()
e confirm()
são mal de experiência do usuário perspectiva):
- você tem um linkbutton excluir
- quando o usuário clica sobre ele, você substituir este controle com um div, que exibe duas linkbuttons sim / não
- enviar um postback com um dos dois
Adenda
- Não linkbutton poderia ser apenas manequim, para esconder esta confirmação e exibição Excluir novamente - assim que significa que não haverá qualquer servidor de ida e volta ??li>
- você poderia até criar um usercontrol que imita este sofisticado link comportamento de exclusão para torná-lo aplicativo reutilizável de largura.