2011-09-25 30 views
12

Tôi muốn tắt tính năng đăng lại sau khi nhấp vào . Tôi đã cố gắng làm điều đó bằng cách gán onclick="return false", nhưng trong nút không hoạt động.Tắt tính năng đăng lại khi nhấp vào nút

Làm cách nào để khắc phục sự cố này?

+0

Để làm rõ, bạn có muốn xử lý bên chỉ khách hàng cho asp: nút? – arviman

Trả lời

0

Tôi có thể khắc phục điều đó bằng UpdatePanel bao gồm các yếu tố/điều khiển liên quan.

+0

Lưu ý rằng điều này không vô hiệu hóa các bài đăng. Nó chỉ sử dụng AJAX để gửi bài đăng ... –

+0

Vâng, tôi đã biết điều đó. ** Sử dụng một UPDATEPANEL, postback xảy ra ** dưới ** này mà không nạp tiền trang ** và tôi biết rằng để vô hiệu hóa một postback, ** Tôi đã sử dụng tài sản AutoPostBack **. –

12
onClientClick="return false" 

Điều đó sẽ thực hiện! Onclick sẽ tham chiếu đến một hàm ASP.net, onClientClick sẽ hiển thị dưới dạng OnClick trên điều khiển trong HTML.

+0

Xin chào, gán thuộc tính này, hàm ASP.NET không hoạt động. –

+0

những gì đang xảy ra là asp.net theo mặc định sẽ chuyển về cơ chế gửi của trình duyệt mà bạn vừa ghi đè bằng tập lệnh phía máy khách của mình. – arviman

1

onclick được sử dụng để kết nối các sự kiện bên phía máy chủ của bạn. Bạn cần sử dụng trình xử lý OnClientClick chẳng hạn như <asp:button OnClientClick="return false;" />

+0

Xin chào, như tôi đã giải thích cho Tom, gán thuộc tính này, hàm ASP.NET không hoạt động. –

+2

thử thực hiện ' 'Khi bạn thực hiện' UseSubmitBehavior' true, asp.net sẽ thêm kịch bản phía máy khách cần thiết để gửi bản đệ trình lên máy chủ. – arviman

+0

Xin chào! Tôi đã thử làm điều đó nhưng bằng cách đó, nút không hoạt động. Hãy nhớ rằng nút này có chức năng C# (ASP.NET) hiển thị một số thông tin trong hộp văn bản (thông tin bổ sung). –

0

Vì bạn muốn thực hiện sau khi đăng lại, tôi cho rằng bạn muốn ngăn việc đăng lại nhấp đúp? Trong trường hợp này, bạn tốt nhất có một số loại trạng thái duy trì biến mà bạn đặt sau khi nhấp chuột đầu tiên ở phía khách hàng. Như một ví dụ đơn giản

var clicked = false; 
function AllowOneClick(){ 
    if(!clicked){ 
     clicked = true; 
     return true; 
    } 
return false; 
} 

Sau đó bạn thiết lập OnClientClick để trả về kết quả phương pháp này trên nút của bạn để OnclientClick="return AllowOneClick()" này tất nhiên sẽ chỉ làm việc cho một nút, nhưng nó sẽ cho bạn những ý tưởng chung.

+0

Xin chào, đầu tiên cảm ơn sự giúp đỡ của bạn nhưng câu trả lời này không khắc phục được sự cố của tôi nhưng ứng dụng không thay đổi về xử lý của bạn –

+0

ok Tôi nghĩ bạn cần phải viết lại câu hỏi của mình. Những gì bạn muốn là cho các nút để gửi lại cho máy chủ làm một số chế biến và sau đó để trở về trình duyệt bị vô hiệu hóa để nó không thể được nhấp sau khi nó đã xử lý phía máy chủ? Nếu đó là trường hợp ở phía máy chủ, hãy đặt thuộc tính Đã bật của nút thành sai. – kmcc049

+0

Xin chào, tôi muốn điều đó ** nút của tôi hiển thị giá trị được gán cho một mục danh sách thả xuống trong hộp văn bản mà không cần nạp tiền trang hiển thị mọi thứ dưới dạng siêu hộp mới **. –

1

Thấy không có câu trả lời nào trong số này giúp ích cho tôi. Tôi tìm thấy một giải pháp. Thay vì sử dụng nút ASP.NET , bạn nên sử dụng nút HTML. Nó hoạt động hoàn hảo và trông giống hệt như nút ASP.NET. Để nhận được nút HTML để gửi ở phía máy chủ, bạn sử dụng thuộc tính onserverclick.

<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" /> 

Đối với mã của tôi, tôi đã sử dụng JS để làm điều gì đó ở phía máy chủ. Các sẽ không ngừng làm một bài trở lại, nhưng như tôi đã nói, nút HTML cố định vấn đề của tôi. Vui lòng đánh dấu là câu trả lời hoặc bỏ phiếu nếu điều này đã giúp bạn.

0

Trong trường hợp của tôi, không có giải pháp nào ở trên phù hợp với tôi.

Điều tôi muốn trước tiên gọi một hàm ở phía máy khách và sau đó tạm dừng đăng lại máy chủ. Giải pháp của tôi là chỉ cần thêm từ khóa return trước khi gọi hàm client-side của tôi, tức là .:

<asp:Button Runat=Server OnClientClick="return fyFunction;"> 

My script client-side chứa return false ở dòng cuối cùng của mã.

0

bằng cách sử dụng UseSubmitBehavior = "false" bạn có thể vô hiệu hóa postbacks của onclick

1

Nó làm việc cho tôi như thế này:

Trong <body>:

function myfunction() { 
      return false; 
     } 

và trong <head>:

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/> 
0

Sử dụng: -

someID.Attributes.Add("onClick", "return false;"); 
-1

Đặt nút asp của bạn vào bên trong UpdatePanel như

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block"> 
    <ContentTemplate> 
    <asp:Button ID="btnID" runat="server" OnClick="btn_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Hy vọng điều này là hữu ích

Các vấn đề liên quan