2011-12-19 22 views
6

Làm thế nào để ngừng trang hiển thị mã số .cs khi nhấp vào nút hủy trên hộp xác nhận javascript?Nhấp vào hủy trên Javascript Xác nhận hộp không ngăn chặn lưới làm mới

Tôi có sự kiện nhấp vào nút và trong một số điều kiện là IF Tôi yêu cầu người dùng xác nhận. Bây giờ khi người dùng nhấp vào nút OK, tôi phải liên kết dữ liệu mới trong lưới. nhưng nếu người dùng nhấp vào nút hủy, nó sẽ không làm mới lưới với dữ liệu mới.

Câu hỏi: Khi nhấp vào nút hủy trên hộp xác nhận JavaScript, làm cách nào tôi có thể dừng mã sau để được thực thi hoặc làm cách nào tôi có thể trả về/ngắt từ JavaScript?

Có ai vui lòng giúp tôi với điều này không? Cảm ơn trước.

Markup

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

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(); 
    } 
} 
+2

Hiện chúng tôi mã hiện tại của bạn xin vui lòng. –

+0

Liệu 'if (confirm (" ... ")) refreshData();' không hoạt động? Bạn có thể cho chúng tôi thấy một số mã không? –

+0

nếu (xác nhận ("...")) refreshData(); .. nó hoạt động nếu người dùng nhấp vào OK .. câu hỏi của tôi là làm thế nào để tôi phá vỡ khi người dùng nhấp vào nút hủy –

Trả lời

7

Bạn đang trộn server và client side code trong cùng một sự kiện, nó phải được tách ra:

Script:

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" /> 

Mã-đằng sau:

public void btnCopy_Click(object sender, EventArgs e) { 
    if (Convert.ToInt32(hidId.Value) > 0) {  
     BindDataGrid(); 
    } 
} 
+0

.. xin lỗi tôi đã quên tập lệnh..thanks..it works..thanks rick schott..u r awesome !! –

+0

Hey, Tôi đang cố gắng để bọc này trong một $ (tài liệu) .ready (function() { )); để tôi có thể kiểm tra giá trị var = document.getElementById ("hidId"); và nếu giá trị> 0 chỉ hơn yêu cầu xác nhận trả lại khác; bất kỳ mẹo nào về điều này ?? –

+0

một cái gì đó như thế này .. $ (document) .ready (function() {var value = document.getElementById ("hidId"); alert (value); if (giá trị <1) trở lại; $ (".confirm"). click .. chức năng Xác nhận() { var record = xác nhận ('Bạn có chắc chắn muốn ghi đè lên hồ sơ?'); nếu (record == 1) {return true;} else if (record == 0) {return false;} } ));

\t

1

Bạn sẽ cần phải nắm bắt những phản ứng, ví dụ:

if (window.confirm) 
{ 
//handle the OK 
} 
else 
{ 
//handle the cancel 
} 
+0

Tôi đã thử chuỗi .... scriptString = " "; Page.RegisterStartupScript (" Xác nhận ", scriptString) và cũng window.stop() –

0

Xin chỉ cho mã này, nhưng không có nhìn thấy mã của bạn, tôi sẽ g bạn có trả lời không?

<input type="button" onclick=" return confirm('is this right?'); "> 
0

Bạn có thể chỉ cần return từ mã hoặc exit(0).

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

//do anything after the grid is populated 
//and exit the function 
} 
+0

Đây là những gì tôi có public void btnCopy_Click (đối tượng người gửi, EventArgs e) {if (Convert.ToInt32 (hidId.Value)> 0) {string scriptString = "< script language = 'JavaScript'> "; scriptString + =" nếu (xác nhận ('Bạn có chắc chắn tiến hành?') == false) {return} "; scriptString + =" "; Page.RegisterStartupScript (" Xác nhận ", BindDataGrid();} –

+0

Cố gắng thay thế trả lại bằng exit (0), nó sẽ thực hiện công việc –

+0

nếu (xác nhận ("Bạn có chắc chắn tiến hành không?") == false) {exit (0);} –

0

Bạn đang hiển thị hộp thoại xác nhận trong codebehind của nút nhấp chuột, đó sẽ không ngăn chặn dòng chảy của mã của bạn.

Bạn cần phải hiển thị các DialogBox xác nhận trước khi làm postback

<asp:Button ID="btnCopy" runat="server" Text="Copy" Enabled="true" OnClientClick="return confirm('sure?');" ValidationGroup="Copy" /> 
Các vấn đề liên quan