日期:2014-05-18  浏览次数:20416 次

Page.RegisterStartupScript()原理?能否和前台js代码交流?
在aspx页面<script>一段代码,然后又在.cs页面Page.RegisterStartupScript注册了一段代码,这两段代码好像不能互访变量,至少我试验时是这样:我专门建了一个项目
在.cs里
C# code
public string js;
    protected void Page_Load(object sender, EventArgs e)
    {
        js="<script>var txt=\"fjw\";document.write(txt);</script>";
        Page.RegisterStartupScript("a", js);
  
    }

前台:
HTML code
<form id="form1" runat="server">
    <script>
    var i=txt;
    alert(i);</script>
    </form>

结果浏览器输出fjw,但alert()没反应,浏览器也没有报错.
那么Page.RegisterStartupScript的作用原理是什么?

------解决方案--------------------
RegisterStartupScript返回的函数在document装载完成后会执行,类似于我们平时所说的<body onload="f()">里面的函数。

——孟子e章
------解决方案--------------------
RegisterStartupScript返回的函数在document装载完成后会执行,类似于我们平时所说的 <body onload="f()">里面的函数。 

------解决方案--------------------
RegisterStartupScript 是将脚本代码注册在<Form></Form>的结尾处,不要望文生义。你可以再看看 RegisterClientScriptBlock 方法。