在page_load上执行VB脚本

时间:2013-11-25 21:09:45

标签: asp.net vb.net vbscript registerstartupscript

我在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打开另一个文档。

1 个答案:

答案 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。

相关问题