2010-01-28 32 views
5

Tôi đang tạo một nút động trong mã của mình và đính kèm một sự kiện nhấp vào nó. Tuy nhiên tôi phải ngăn mọi người bấm vào nó trong khi có một tiến trình đang diễn ra. Vì vậy, khi nó được nhấp một lần, nó sẽ bị vô hiệu hóa và khi quá trình kết thúc nó nên được kích hoạt. Làm thế nào tôi có thể làm điều đó?Tắt một sự kiện bấm nút động asp.net trong khi đăng lại và bật sau

Cảm ơn.

Trả lời

4

onclick = "this.enabled = false" thêm này từ mã của bạn phía sau để kiểm soát của bạn

btnAdd.Attributes.Add ("onclick", "this.enabled = false;");

Liên kết này giải thích chi tiết http://encosia.com/2007/04/17/disable-a-button-control-during-postback/

+0

nếu bạn muốn nói mybutton.onlick = "this.enabled = false" thì không có phương thức onlick nào được xác định cho nó. – stckvrflw

+0

nó sẽ là sự kiện phía khách hàng bị sa thải sau khi nút được bấm, nếu bạn muốn vô hiệu hóa từ phía máy chủ nó rất dễ dàng btnAdd.Enabled = false; – Ravia

0

Tôi sẽ sử dụng nút UpdatePanel arround. Khi bấm vào, bạn có thể vô hiệu hóa các nút trên máy chủ. Sử dụng trình kích hoạt trên bảng cập nhật trông mỗi x giây nếu quá trình extern của bạn đã trả lại kết quả. Và tôi sẽ khuyên bạn nên đưa ra các quy trình chạy dài vào một dịch vụ cửa sổ.

2

Nếu bạn đang xử lý thông qua ajax khi nút là clicked- 1. Vô hiệu hoá nút khi chế biến bắt đầu 2. Kích hoạt nút sau khi chế biến xong

Nếu postbacks nút, cách tốt nhất là để vô hiệu hóa khi nó được nhấp qua javascript [Tôi sẽ không đề xuất jquery chỉ cho nhiệm vụ cụ thể này]. Kể từ sau khi postback nút sẽ được kích hoạt như trước đó, bạn không cần phải lo lắng về việc kích hoạt.

<asp:Button ID="btn" runat="server" OnClientClick="disable(this)" 
Text="Click me!" OnClick="btn_Click" /> 

<script type="text/javascript"> 
     function disable(control) 
     { 
      control.disabled="disabled"; 
      //added alert to give the snapshot of what happens 
      //when the button is clicked 
      alert(100); 
     } 
</script> 

Hy vọng điều này sẽ hữu ích.

+0

và cách nó sẽ tự kích hoạt sau khi kết thúc đăng lại? – stckvrflw

+1

Tôi viết mã của tôi tương tự như mã của bạn. Mọi thứ đều giống nhau nhưng bây giờ OnClick = "btn_Click" không kích hoạt. Nếu tôi xóa OnClientClick = "disable (this)" thì OnClick sẽ kích hoạt. Bạn nghĩ sao ? – stckvrflw

+0

Sau khi postback, bạn có thể đăng ký một tập lệnh với clientscript trong C# để loại bỏ thuộc tính bị vô hiệu hóa của nút. – sangam

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