Pergunta

Em primeiro lugar, devo mencionar que passo o dia inteiro pesquisando e não consigo descobrir o que há de errado com meu código e por que ele não funciona ...

Preciso de uma caixa de diálogo modal para confirmação em meu código, então uso esta caixa de diálogo modal do jQuery: Confirmação JQuery

O que eu preciso é incorporar essa funcionalidade com um <asp:Button>...

Meu problema é que quando clico no botão a caixa de diálogo aparece, mas os botões sim/não não funcionam e ambos simplesmente desaparecem da caixa de diálogo.

Também uso o código abaixo, mas __doPostBack() não fez nada, mas executa códigos js simples como alert('') perfeitamente:

$("#complexConfirm").confirm({
     title: "Redirect confirmation",
     text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
     confirm: function (button) {
         __doPostBack('complexConfirm', 'OnClick');
     },
     cancel: function (button) {
         return false;
     },
     confirmButton: "Yes",
     cancelButton: "No"
});

Eu pesquiso e faço diálogo porque o elemento vem fora do elemento do formulário, então devo trazê-lo de volta ao formulário, mas não sei como tento o código abaixo e isso não acontece

$("#editEventModal").parent().appendTo(jQuery("form:first"));

Outro problema é tentar fazer postback com evento javascript sem a caixa de diálogo, uso 2 botões um para chamar javascript e outro para chamar isso, mas quando uso __doPostBack ele atualiza a página mas não chega ao meu evento de botão no código -behind, tento várias maneiras de chamar o evento onClick do botão, mas ele apenas atualiza a página e não chama meu butoon OnClick Mehtod !!!

A declaração dos botões é assim:

<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />

O que devo fazer para esses dois problemas?

Procuro muito e nenhuma das soluções funcionou para mim !!!

Agradecerei qualquer solução, obrigado.

Foi útil?

Solução

Sem conhecer a declaração do seu asp:button, aqui está meu melhor palpite.

Você precisa usar o uniqueID do botão, o atributo "nome" do botão, não o ID.

__doPostBack('<%=complexConfirm.UniqueID%>', '');

além disso, como é um botão, você não precisa especificar OnClick

EDITAR:Criei um exemplo prático demonstrando o que acho que você está tentando realizar.Você pode adaptar isso à sua confirmação do jQuery conforme necessário.

aspx:

<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />

javascript:

<script>
    $('#<%=btnTest1.ClientID%>').confirm({
        text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
        title: "Confirmation required",
        confirm: function (button) {
            // do something
            __doPostBack('<%= btnTest1.UniqueID%>', '');
        },
        cancel: function (button) {
            // do something
        },
        confirmButton: "Yes I am",
        cancelButton: "No",
        post: true
    });
</script>

Código por trás:

protected void btnTest1_Click(object sender, EventArgs e)
{
    Response.Write("You clicked YES");
}

Acho que parte do problema é que o nome do seu evento não foi nomeado com o nome do seu botão.Se estiver usando autoEventWireup, o que acho que você está, então seu evento não será acionado porque não consegue encontrar um evento com um nome correspondente.

Então, a primeira coisa que fiz foi eliminar o StaticClientID.você ainda pode usar jquery com IDs gerados pelo asp.net.Então me certifiquei de que o evento tivesse um nome btnTest1_Click porque o nome do botão é btnTest1

Não sei por que você precisava do outro botão, porque parece que tudo o que você está tentando fazer é confirmar antes que o botão seja enviado.

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