Fórum Caixa de diálogo ASP.Net #6763

12/06/2009

0

Olá
Estou desenvolvendo uma aplicação ASP.Net, utilizando C#.
Eu inclui a referência Windows Forms - using System.Windows.Forms, e utilizo a classe MessageBox
Enquanto estou em desenvolvimento funciona corretamente, porém quando faço a publicação do meu site, apresenta o seguinte erro:

Mostrar um formulário ou uma caixa de diálogo restrita quando o aplicativo não está no modo UserInteractive não é uma operação válida. Especifique o estilo ServiceNotification ou DefaultDesktopOnly para exibir uma notificação de um aplicativo de serviços.

Isso é alguma configuração no IIS ou no WebConfig.

Obrigado
Eduardo Pereira

Eduardo Pereira

Responder

Posts

12/06/2009

Luiz Maia

Ola Eduardo,   Não tem nada a ver com IIS e nem com web.config.   Seguinte, o MessageBox é um controle exclusivo de Aplicações Windows, não funciona em Servidor Web.   Ja que esta fazendo uma aplicação web, vc deve usar o RegisterStartupScript, que tem o mesmo comportamento da caixa de diagolo dos Windows Forms, porém é um recurso JavaScript.   Caso não conheça o  RegisterStartupScript, me diga que te passo um exemplo.     Abraços Att Luiz Maia  
Responder

Gostei + 0

12/06/2009

Eduardo Pereira

Entendi
Por gentileza se puder me enviar um exemplo, pois tenho várias situações em que preciso exibir uma mensagem ou solicitar uma confirmação do usuário, como fazer uma confirmação de exclusão de um registro como Sim ou Não, ou ainda apenas uma mensagem de alerta com um botão OK.

Obrigado.


Responder

Gostei + 0

12/06/2009

Luiz Maia

Ola, segue alguns exemplos de como vc pode usar os recursos javascritp via C#.     1 - Pode usar direto no HTML do webform:   <asp:ImageButton ID="ibExcluir" OnCommand="Excluir" OnClientClick="javascript:return confirm(Deseja excluir este item?');" runat="server" ImageUrl="Imagens/btn_excluir.gif" />   2 - Pode usar no evento de alguma imagem ou botao (via C#):   ClientScript.RegisterClientScriptBlock(this.GetType(), "ClosePopUp", "<script>alert('clicou aqui');</script>");   3 - Pode tambem adicionar algum trecho de codigo cliente (js) ao renderizar seu webForm, e depois atribuir este evento ao clique de um botao, poe exempo:   private void Page_Load(object sender, System.EventArgs e)
{
    string jScriptValidator;
    jScriptValidator="<script> function ReqFieldValidator()" +
                " { if (document.forms[0].txtField.value == '') \n";
    jScriptValidator+="{ alert('TextBox cannot be empty') \n ";
    jScriptValidator+="return false; \n";
    jScriptValidator+="} \n";
    jScriptValidator+=" return true \n";
    jScriptValidator+=" } </script>";
    Page.RegisterStartupScript("regJSval",jScriptValidator);
    btnSubmit.Attributes.Add("onclick","return ReqFieldValidator()");
}     Espero ter ajudado. Aguardo um retorno seu.   Att Abraços
Responder

Gostei + 0

12/06/2009

Eduardo Pereira

Ok funcionou corretamente
Agora como posso fazer com uma confirmação,do tipo:

Confirma a exclusão do Registro?
Sim  Não

Obrigado
Responder

Gostei + 0

12/06/2009

Luiz Maia

Pode usar este recurso inserido diretamente nas tags no botao:   <asp:ImageButton ID="ibExcluir" OnCommand="Excluir" OnClientClick="javascript:return confirm('Deseja excluir este item?');" runat="server" ImageUrl="Imagens/btn_excluir.gif" />     Abraços Att Luiz Maia
Responder

Gostei + 0

12/06/2009

Luiz Maia

Apenas retire o onCommand:   <asp:ImageButton ID="ibExcluir" OnClientClick="javascript:return confirm('Deseja excluir este item?');" runat="server" ImageUrl="Imagens/btn_excluir.gif" />   Abraços Att Luiz Maia
Responder

Gostei + 0

12/06/2009

Eduardo Pereira

Ok Luiz
Desculpe a insistência, mas é que sou iniciante em programação via Web.
Como posso fazer um envento onclick do botão chamar o recurso JavaScript?

Exemplo:

       protected void btnExpedir_Click(object sender, EventArgs e)
        {
            ClientScript.RegisterClientScriptBlock(this.GetType(), "ClosePopUp", "<script>alert('clicou aqui');</script>");
            // Chamar a caixa de diálogo
            // e conforme o botão clicado executar ou não um bloco de comando



         }


Obrigado.
Responder

Gostei + 0

12/06/2009

Luiz Maia

Ola Eduardo,   Tente algo do tipo:            protected void btnExpedir_Click(object sender, EventArgs e)
       {
            string teste = "<script>return confirm('deseja excluir?');</script>";             ClientScript.RegisterClientScriptBlock(this.GetType(), "PopUpExclusao", teste, true);
       }     Aguardo retorno.   Luiz Maia
Responder

Gostei + 0

12/06/2009

Eduardo Pereira

Luiz
Não funcionou corretamente apareceu no alto da tela //]]>
Vc tem algum artigo ou site sobre caixas de diálogo e javascript?
Obrigado.

Responder

Gostei + 0

12/06/2009

Luiz Maia

Eduardo,   Use este então, mas facil de implementar. Apenas coloqyue esta linha dentro do metodo PageLoad:     protected void Page_Load(object sender, EventArgs e) { btnExpedir.Attributes["onclick"] = "return confirm('deseja excluir este item');"; } protected void btnExpedir_Click(object sender, EventArgs e) { }   Abraços Att Luiz Maia
Responder

Gostei + 0

12/06/2009

Eduardo Pereira

Ok
Funcionou obrigado.
Responder

Gostei + 0

12/06/2009

Luiz Maia

Blz Eduardo, precisando é so falar.   Abraços Att   Luiz Maia
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar