Tôi đang cố gắng sử dụng điều khiển ImageButton để thực thi tập lệnh phía máy khách. Tôi có thể chỉ định kịch bản phía máy khách để thực thi bằng cách sử dụng thuộc tính OnClientClick, nhưng làm cách nào để ngăn chặn nó cố gắng đăng mỗi khi người dùng nhấp vào nó? Không có lý do gì để đăng khi nút này được nhấp. Tôi đã đặt CausesValidation thành False, nhưng điều này không ngăn nó gửi bài.Tôi có thể tạo một ASP.NET ImageButton không postback?
Trả lời
Dưới đây là một cách để bạn có thể làm điều đó mà không mâu thuẫn với các chức năng postback của các điều khiển khác:
Xác định nút một cái gì đó của bạn như thế này:
<asp:Button runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="alert('my client script here');my" />
Các "tôi" kết thúc trong xử lý cho OnClientClick là một cách để bí danh sự kiện khách hàng __doPostBack của asp.net đã buộc postback; chúng tôi chỉ đơn giản là ghi đè lên các hành vi bằng cách làm không có gì giống với kịch bản này:
<script type="text/javascript">
function my__doPostBack(eventTarget, eventArgument) {
//Just swallow the click without postback of the form
}
</script>
Edit: Yeesh, tôi cảm thấy như tôi cần phải đi tắm sau khi một số trong những thủ đoạn bẩn thỉu mà tôi cần để kéo để có được asp. net để làm những gì tôi muốn.
Bí quyết" của tôi "hoạt động với tôi, nhưng do đó đã làm "trở lại sai" ở cuối mà làm cho tôi cảm thấy ít icky – Carl
Tôi đang có cùng một vấn đề ... http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button trong khi-hiển thị-một-popup-sử dụng-jquery. Tôi chuẩn bị kiểm tra giải pháp của bạn ngay bây giờ. – SearchForKnowledge
<image src="..." onclick="DoYourThing();" />
Điều đó sẽ hoàn hảo, ngoại trừ việc nút này được xây dựng động trên phía máy chủ và cần phải là đối tượng .NET. – Giffyguy
Bạn luôn có thể có điều khiển 'asp: Literal' trên trang của mình và trong mã của bạn đằng sau văn bản được đặt động, ví dụ:' myLiteral.Text = ""; ' –
Sử dụng một điều khiển hình ảnh phía máy chủ
<asp:Image runat="server" .../>
Đẹp, chắc chắn bạn có thể thêm các sự kiện khách hàng onclick
đó.
Một giải pháp khác sẽ được xác định một PostBackURL mà không làm gì
<asp:imagebutton runat="server" PostBackUrl="javascript:void(0);" .../>
Tôi biết vấn đề này đã được trả lời nhưng một giải pháp đơn giản là để trả về false từ HTML onclick phương pháp (tức là phương pháp ASPX OnClientClick) ví dụ
<asp:ImageButton ID="ImageNewLink" runat="server"
ImageUrl="~/images/Link.gif" OnClientClick="DoYourStuff(); return false;" />
Trả về false sẽ dừng trình duyệt yêu cầu quay lại máy chủ i.s. dừng postback .NET.
Tôi muốn đề xuất một tùy chọn bổ sung của OnClientClick = "return DoYourStuff();". Sau đó trả về false bên trong DoYourStuff(). Bằng cách này, DoYourStuff có thể trả về true hoặc false tùy thuộc vào các yếu tố khác và có khả năng vẫn cho phép postback cho một số điều kiện nhất định. – TTT
Nếu tôi có nhiều nút trong GridView, tôi chỉ hoạt động lần đầu tiên và bất kỳ lúc nào sau đó, chức năng không kích hoạt. http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button-while-displaying-a-popup-using-jquery – SearchForKnowledge
@TTT Đó là những gì tôi đã thử trước, nhưng vì một lý do nào đó nó không hoạt động. Mặc dù, nếu tôi đặt 'return false;' trong 'OnClientClick' như CodeClimber được đề xuất, nó hoạt động. – TheWanderingMind
này hoạt động tuyệt vời cho tôi:
Sử dụng OnClientClick
để viết kịch bản của bạn và PostBackUrl="javascript:void(0);"
để tránh postback.
<div class="close_but">
<asp:ImageButton ID="imgbtnEChartZoomClose" runat="server" ImageUrl="images/close.png" OnClientClick="javascript:zoomclosepopup();" PostBackUrl="javascript:void(0);" />
</div>
Giải pháp 1
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;" />
HOẶC Giải pháp 2
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="yourmethod(); return false;" />
Ngoài (giải pháp 2), phương pháp javascript của bạn có thể theo hình thức này
<script type="text/javascript">
function yourmethod() {
__doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3);
}
</script>
trong mã phía sau
protected void Page_Load(object sender, System.EventArgs e)
{
if (this.IsPostBack) {
string eventTarget = this.Request("__EVENTTARGET") == null ? string.Empty : this.Request("__EVENTTARGET");
string eventArgument = this.Request("__EVENTARGUMENT") == null ? string.Empty : this.Request("__EVENTARGUMENT");
}
}
Sử dụng OnClientNhấp để viết tập lệnh của bạn và PostBackUrl = "javascript: void (0);" để tránh postback
- 1. ASP.Net MVC ModelState/Html.Tài liệu postback postback
- 2. ASP.net RequiredFieldValidator không ngăn chặn postback
- 3. Postback in asp.net
- 4. Làm thế nào tôi có thể tạo các nút và nối các sự kiện từ postback
- 5. Làm mới trang sau một hành động postback trong asp.net
- 6. ASP.NET MVC không hoạt động với ViewState và Postback?
- 7. ASP.net với C# Giữ một danh sách trên postback
- 8. JQuery-Mobile và ASP.Net - AJAX hoặc Postback?
- 9. ASP.NET DropDownList không giữ lại mục được chọn trên postback
- 10. Postback không đồng bộ và đồng bộ trong ASP.NET
- 11. DropDownList không postback trên SelectedIndexChanged
- 12. Tôi có thể thay đổi kích thước imageButton bằng cách nào?
- 13. Làm thế nào tôi có thể tạo một trace.axd hoàn chỉnh trong ASP.NET MVC?
- 14. Tôi có thể xóa bộ đệm sớm bằng ASP.NET không?
- 15. Tắt ImageButton
- 16. Làm cách nào để tạo một Postbox Postback trên KeyUp?
- 17. ASP.NET MVC - Tôi có thể có nhiều tên cho cùng một hành động không?
- 18. ASP.NET: tránh RequiredFieldValidator trên điều hướng nút postback
- 19. ASP.NET trường thành viên tin mất giá trị trên postback
- 20. ASP.NET Không thể tạo thành phần ActiveX
- 21. ASP.NET Ajax postback đột nhiên dừng trên IPhone/IPad
- 22. Làm thế nào để asp.net MVC nhớ các giá trị không chính xác của tôi trên postback?
- 23. ASP.NET - Kiểm soát danh sách thả xuống postback lập trình
- 24. Tôi có thể tạo một Ứng dụng Facebook bằng C# không?
- 25. Làm thế nào để chạy một hàm javascript trước khi postback của nút asp.net?
- 26. Nhận giá trị hộp kiểm trên postback ASP.NET MVC
- 27. Postback không làm việc với ASP.NET Routing (Validation của viewstate MAC thất bại)
- 28. Tôi có thể tạo một hàm tạo để deserializes một phiên bản chuỗi của đối tượng của tôi không?
- 29. Android ImageButton background color
- 30. GridView RowDataBound không kích hoạt trên postback
Bất kỳ lý do nào không chỉ sử dụng sự kiện onclick của thẻ img? –
@BigJason: Tôi muốn tránh nó nếu có thể. Nút này rất phức tạp và được xây dựng trên phía máy chủ. – Giffyguy