Jak zatrzymać stronę od renderowania kodu .cs na kliknięcie przycisku Anuluj w polu Potwierdź JavaScript?

Mam zdarzenie przycisku, a w niektórych IF IF proszę o potwierdzenie. Teraz, gdy użytkownik kliknie przycisk OK, muszę wiązać nowe dane w sieci. Ale jeśli użytkownik kliknie przycisk Anuluj, nie powinien odświeżać siatki nowymi danymi.

Pytanie: Na kliknięciu przycisku Anuluj w polu Potwierdź JavaScript, jak mogę zatrzymać następujący kod, który można wykonać lub jak mogę po prostu wrócić / zerwać z JavaScript?

Czy ktoś może mi pomóc? Z góry dziękuję.

Markup

<asp:Button ID="btnCopy" runat="server" Text="Copy" Enabled="false" OnClick="btnCopy_Click" ValidationGroup="Copy" />

Kod

public void btnCopy_Click(object sender, EventArgs e) { 
    if (Convert.ToInt32(hidId.Value) > 0) {
        string scriptString = "<script language='JavaScript'> ";
        scriptString += "if (confirm('Are you sure to proceed?') == false) {return} ";
        scriptString += "</script>";
        Page.RegisterStartupScript("Confirm", scriptString);
        BindDataGrid();
    }
}
6
R S 19 grudzień 2011, 23:37

5 odpowiedzi

Najlepsza odpowiedź

Mieszanie serwera i kodu bocznego klienta w tym samym zdarzeniu, należy go oddzielić:

Skrypt:

function Confirm()
{
    var record=confirm('Are you sure to proceed??');
    if(record == 1)
    {
        return true;
    }
    else if(record == 0)
    {
        return false;
    }
 }

Markup:

<asp:Button ID="btnCopy" runat="server" Text="Copy" Enabled="false" 
    OnClick="btnCopy_Click" OnClientClick='return Confirm();' ValidationGroup="Copy" />

z tyłu:

public void btnCopy_Click(object sender, EventArgs e) { 
    if (Convert.ToInt32(hidId.Value) > 0) {      
        BindDataGrid();
    }
}
7
rick schott 19 grudzień 2011, 20:20

Musisz złapać odpowiedź, na przykład:

if (window.confirm)
{
//handle the OK
}
else
{
//handle the cancel
}
1
Chris Disley 19 grudzień 2011, 19:39

Pokaż kod, ale bez widzenia kodu zgadłbym, że nie zwracasz odpowiedzi?

<input type="button" onclick=" return confirm('is this right?'); ">
0
Sam Sussman 19 grudzień 2011, 19:43

Możesz po prostu return z kodu lub {x1}}.

function fillGrid()
{
 if( confirm("....") )
 {
  //populate your grid
 }
 else
 {
   return;
 }

 //do anything after the grid is populated
 //and exit the function
}
0
Vosobe Kapsimanis 19 grudzień 2011, 19:47

Pokazujesz okno dialogowe Potwierdź w CodeBehind o przycisku Kliknij, który nie zatrzymuje przepływu kodu.

Musisz pokazać okno dialogowe Potwierdź przed dokonaniem zwrotu

<asp:Button ID="btnCopy" runat="server" Text="Copy" Enabled="true" OnClientClick="return confirm('sure?');" ValidationGroup="Copy" />
0
Piyey 19 grudzień 2011, 23:05