2012-02-10 44 views
5

Tôi có một hàm chịu trách nhiệm điền một báo cáo SSRS. Người dùng nhấn một nút và tôi đi ra ngoài và kiểm tra xem có dữ liệu không. Nếu không có dữ liệu, tôi cung cấp một tin nhắn NO DATA. Nếu có dữ liệu tôi gọi báo cáo SSRS mà tôi muốn mở trong một cửa sổ mới. Tôi nghĩ sử dụng một hàm JavaScript sẽ là cách tốt nhất để thực hiện điều này. Làm thế nào là điều này được thực hiện hoặc những gì bạn muốn giới thiệu? Cảm ơn trước!Hàm ASP.Net VB JavaScript gọi từ Mã Phía sau

<script type="text/javascript"> 
     function openWindow(url) { 
      document.forms[0].target = "_blank"; 
     } 
    </script> 

Trả lời

5

Vui lòng xem xét sử dụng phương pháp ClientScriptManager.RegisterClientScriptBlock. Đó là một phương pháp tĩnh và nên có trên trang của bạn.

Ví dụ về việc sử dụng được sau:

Page.ClientScript.RegisterStartupScript(Me.GetType(), "window-script", "openWindow('someUrl')", True) 

Tất nhiên bạn có thể đặt bất kỳ url mà bạn đã chuẩn bị trong mã của bạn đằng sau ...

Hy vọng nó giúp.

0

Nếu bạn đang cố gắng để thực hiện javascript trên một trang tùy thuộc vào một số kết quả của phía máy chủ logic, một cách để bạn có thể đạt được điều này là bằng cách sử dụng điều khiển asp đen (hoặc các loại điều khiển asp)

Ví dụ:

<asp:Literal ID="literalJavascript" runat="server"> 
    function openWindow() { ... } 

    openWindow(); 
</asp:Literal> 

Sau đó, chỉ hiển thị hoặc ẩn chữ này trong mã máy chủ của bạn dựa trên logic khác của bạn.

9

Hãy thử điều này:

System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True) 
2

Something cần lưu ý ở đây: trong khi mã vb của bạn đang chạy, các trang trong trình duyệt của bạn không tồn tại.

Hãy nhớ rằng các trang web làm việc thông qua giao thức http, và các giao thức http nắm để yêu cầuphản ứng. Luôn luôn là một yêu cầu đầu tiên, theo sau là một phản ứng. Thông thường, phản hồi là html, và đây là nơi mã vb của bạn xuất hiện. Mục đích duy nhất của tất cả mã và đánh dấu aspx là để máy chủ web của bạn có thể gửi html trở lại trình duyệt. Không có kết nối hoạt động nào giữa trình duyệt và máy chủ của bạn. Trong khi mã vb của bạn đang chạy, trang web trong trình duyệt của bạn không thực sự tồn tại (mã của bạn đang bận tạo mã). Trong khi javascript của bạn đang chạy và tài nguyên vb được sử dụng để tạo nó trên máy chủ từ lâu đã được tái chế.

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