我在ASPX页面中使用VB脚本。我需要在Page _load中的codeBehind中使用该脚本,并在每次迭代中使用For循环。
我的守则是: - (。使用VB脚本的.ASPX页面。)
<script type="text/vbscript" language="vbscript" >
sub wordit()
'Opens Word application and does some process
end sub
</script>
部分背后的VB代码: -
For i As Integer = 1 To colSelRowIndex
CheckboxTemplateId = colSelRowKeys(i).ToString 'I get the ID from here
ViewState("TemplateID") = CheckboxTemplateId 'I need to send the value to the sub routines
hen()'sub
den()'sub
cs.RegisterStartupScript(cstype, csname1 & i, "wordit();", True)
Next
我需要为一个ID打开一个word doc,为循环中的另一个ID打开另一个文档。
答案 0 :(得分:2)
试试这个:
For i As Integer = 1 To 10
cs.RegisterStartupScript(cstype, csname1 & i, "wordit();", True)
Next
该函数调用中的第二个参数正在寻找唯一键。这是一个功能,以防止意外地以编程方式多次添加相同的脚本。如果您想故意这样做,每次都需要一个唯一的密钥。
但是你想要这样做表明可能存在的根本误解是什么。当您的服务器代码(包括Page_Load)正在运行时,Web浏览器中的客户端页面不存在。服务器代码的目的是始终以生成html响应到网络请求。服务器代码永远不会直接操作页面DOM。
显然,对于会话中页面的第一个请求,情况就是如此:服务器必须首先生成初始页面以发送客户端。但即使在随后的回发中,浏览器也会销毁页面的先前实例。服务器必须从头开始重建整个页面。 每个。时间。发生这种情况时,您在浏览器窗口中查看的页面只是一种后映像。浏览器已经销毁任何以前的DOM,并且正在等待服务器提供一整套新的HTML。
我也想知道你使用的是vbscript,而不是javascript。使用vbscript几乎可以保证您的页面只能用于Internet Explorer。