2013-07-12 35 views
5

Tôi đang cố gắng mở tệp trong tab mới trên sự kiện nhấp chuột của nút liên kết bên trong GridView bằng ScriptManager.RegisterStartupScript bên trong bảng cập nhật nhưng không đang làm việc. Bộ luật như sau:RegisterStartupScript không hoạt động bên trong bảng điều khiển cập nhật để mở tệp trong tab mới trong asp.net

 filename = Server.UrlEncode(filename);   
     string js = "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>";   
     ScriptManager.RegisterStartupScript(UpdatePanel1,UpdatePanel1.GetType(),"Pop up",js,true); 

này cũng không làm việc:

 ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(), js, true); 

Và khi tôi đang sử dụng bên dưới mã bên ngoài Cập nhật Bảng điều chỉnh hoạt động:

  Type cstype = this.GetType(); 

     ClientScriptManager cs = Page.ClientScript; 
     cs.RegisterStartupScript(cstype, "dateSrpt", "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>"); 
+0

Sự kiện nào bạn đã thêm khối mã registerStartupscript()? Vui lòng thử thêm nó vào trang_Prerender event. – Gayatri

+0

Thực ra tôi đang cố gắng mở một tệp trên sự kiện nhấp chuột của nút liên kết. Vì vậy, mã này được đặt trong sự kiện nhấp chuột của nút liên kết. bảo vệ void lnkvwReport_Click (đối tượng gửi, EventArgs e) – user2486976

+0

Hãy thử 'RegisterClientScriptBlock' thay vì' RegisterStartupScript' –

Trả lời

8

Có vấn đề với bạn javascript nội dòng. Nó không hoạt động với javascript nội tuyến. khi tôi tách nó thành trang aspx như hàm javascript riêng biệt và được gọi là hàm bên trong Registerstartupscript, Nó hoạt động.

Javascript

function OpenPopup() {    
     window.open('PulseUserManagement.aspx', null, 'height=500, width=1100, status=no,  resizable=no, scrollbars=yes, toolbar=no,location=no, menubar=no'); 
    } 

CS đang

ScriptManager.RegisterStartupScript(updatepanel1, updatepanel1.GetType(), "Pop up", "OpenPopup();", true); 

Vui lòng thử như thế này, nó hoạt động.

+0

Không có quá tải 'ScriptManager.RegisterStartupScript' chấp nhận 5 đối số. Tại sao/làm thế nào bạn đi qua trong updatepanel1? – iamwonder

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