我正在重构一个遗留的Web应用程序。这个应用程序有一个正在使用身体标记内的onload事件(在母版页上)来运行此JavaScript脚本。请注意,此脚本标记位于文档中的表单元素之后。我知道语法看起来很丑陋(或者Visual Studio至少告诉它是由歪曲的),但我会感到厌烦,事情确实有效。如何将一个ASP.NET会话变量转换为JavaScript文件?
function DisplayPDF()
{
var strPDF
strPDF = "<%=SESSION("PDF")%>";
if (strPDF.length != 0)
{
window.open(strPDF);
<%Session("PDF") = ""%>
}
}
我的问题是我正在努力开发一个更优雅的解决方案。我有ASP.NET AJAX和jQuery都可以使用。我写了一个我想用来处理这个问题的小型asp.net ajax组件。
Type.registerNamespace("ck");
ck.pdfOpener = function() {
ck.pdfOpener.initializeBase(this);
}
ck.pdfOpener.prototype = {
initialize: function() {
ck.pdfOpener.callBaseMethod(this, 'initialize');
},
dispose: function() {
ck.pdfOpener.callBaseMethod(this, 'dispose');
},
openPDF: function(){
//HOW CAN I RETRIEVE A SESSION VARIABLE HERE???
}
}
ck.ClientControl.registerClass('ck.pdfOpener', Sys.Component);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
可以/我应该这样做吗?或者我应该创建一个返回所述变量的WebService。感谢您的任何建议。
干杯,
〜CK在圣地亚哥
在这个应用程序,一个页面上,说:“createInvoice.aspx”,有运行基于屏幕内容主动报告的按钮,该报告被保存为PDF格式,这是路径,新创建PDF。这里的要求是弹出新创建的PDF。单击该按钮将表单发回,并且onload处理程序会看到有一个值,因此它会使用该文件路径打开一个新窗口。我已经请求重新设计该管理器,但是管理层希望在工作时使用它。他们当然非常“以我为主”,所以他们总是想看到新的东西。没时间清理东西了。 :(任何想法? – Hcabnettek 2009-07-09 16:15:54