2011-07-28 32 views
11

tôi có một updatepanel trong trang web asp.net của tôi. Tôi muốn kích hoạt updatepanel trong một chức năng javascript insead kích hoạt bằng một nút.
Để thực hiện điều đó, tôi đã sử dụng chức năng __doPostBack('myUpdatePanel', '');. Nhưng tôi nghĩ rằng nó gây ra toàn bộ trang postback. Hàm document.ready của tôi cũng được thực thi khi tôi gọi hàm này. Tôi có thể thiếu một số điểm.
Có cách nào khác để kích hoạt updatepanel trong một hàm javascript không?làm thế nào để kích hoạt updatepanel trong một hàm javascript

Trả lời

18

Tôi nghĩ nếu bạn đặt một nút ẩn bên trong bảng cập nhật và bạn có thể sử dụng javascript để kích vào nút này, nó sẽ làm những gì bạn muốn.

<script type="text/javascript"> 
     function Update_UpdatePaanel() { 
      document.getElementById('<%= YourButton.ClientID %>').click() 
     } 
    </script> 

Nút PHẢI được bên trong một div ẩn và không đặt visibile = "false" bởi vì nếu bạn đặt nó là sai sự thật, sự kiểm soát sẽ không render và javascript sẽ tạo ra lỗi.

<div style="display:none"> 
     <asp:Button ID="YourButton" runat="server" /> 
    </div> 
+0

thực sự có thể? Vì vậy, tôi nên tìm cách bắn nhấp chuột của một cái nút. Bạn có biết làm thế nào để kích hoạt sự kiện click của một nút ẩn với javascript? – Fer

+0

document.getElementById ('<% # YourButton.ClientID%>'). Nhấp() –

+0

Tôi đã cập nhật câu trả lời của mình bằng mã mẫu. –

3

Chỉ cần tạo một hàm javascript và thực hiện các sự kiện postback tạo:

<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%> 

Những tuyên bố trên được đưa trên trang aspx của bạn, và nó tham chiếu mã chính xác cùng tạo ra từ các máy chủ để gây ra một postback cho bảng điều khiển của bạn. Bạn có thể sử dụng nó bằng cách đặt nó bên trong một hàm về phía khách hàng:

function fncUpdatePanel() { 
    <%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>; 
} 

Sau đó, bạn có thể đính kèm chức năng mà bất kỳ sự kiện trên trang của bạn (thậm chí là một sự kiện mouseover). Ví dụ này sử dụng phía máy chủ để đính kèm sự kiện:

myUpdatePanel.attributes('onmouseover', 'fncUpdatePanel()') 
+0

Bạn có thể giải thích chi tiết không? tôi cần phải kích hoạt bảng điều khiển trong mã javascript. mã của bạn dường như ở phía máy chủ? – Fer

+0

chi tiết bổ sung được thêm – rkw

+1

Điều này không có tác dụng vì GetPostBackEventReference dành cho đăng lại không phải là bài đăng không đồng bộ. Tôi đang cố gắng sử dụng GetCallbackEventReference thay vào đó nhưng không có bất kỳ may mắn đi qua nó tham chiếu kiểm soát chính xác để làm cho nó hoạt động. – jlafay

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