- <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return false;" />
- <asp:Button ID="Button1" UseSubmitBehavior="false" runat="server" Text="Button" OnClientClick="return false;" onclick="Button1_Click" />
- <input type="button" id="Button1" onclick="return false;__doPostBack('Button1','')" value="Button" name="Button1">
Để ý đoạn
- onclick="return false;__doPostBack('Button1','')"
__doPostBack('Button1','') chính là hàm để postback lên xử lý để xử lý các sự kiện trên server . Trường hợp này nó sẽ thực thi sự kiện onclick="Button1_Click". Nếu không đăng ký sự kiện trên server cho button nó sẽ không phải làm gì cả tuy nhiên nó vẫn postback lên server.
Quá trình xử lý khi click vào button: nó sẽ thực hiện các hàm bên phía client trước sau đó sẽ thực hiện tiếp các hàm postback. Nếu ta chèn thêm 1 đoạn return false vào sự kiện ở client thì tất cả các hàm phía sau nó sẽ không thực hiện nữa, do đó sẽ không postback lên server nữa. Vì các hàm postback bị đặt sau các hàm bên client nếu có.
Để chứng mình điều này ta làm thử 1 ví dụ:
Set lại hàm:
- OnClientClick="alert('trước return');return false;alert('sau return')"
- onclick="alert('trước return');return false;alert('sau return');__doPostBack('Button1','')"
Cám ơn anh rất nhiều, bài viết rất có ích đối với em, cả đêm đau đầu..3 giờ sáng đọc đc 1 dòng mừng hết lớn
Trả lờiXóa