我用的是VS2005,想在后台向前台回送参数。
    用下面这几句,前台可以弹出警告框。
        Response.Write("<script   language=javascript>");
        Response.Write("alert('1111');");
        Response.Write("</script>");
   但我加上一句。
        Response.Write("<script   language=javascript>");
        Response.Write("document.getElementById('Textl').value='99999';");
        Response.Write("alert('1111');");
        Response.Write("</script>");
   这样前台什么反应都没有。
   请高手们指教。
   我的目的是想在后台执行一些语句后,把产生的结果回送到前台的控件里面,本来可以在控件里面加 SERVER,感觉上面的语句能用应该更方便,谢谢。

解决方案 »

  1.   

    document.getElementById('Textl').value='99999'
    这句有错误,没找到text1这个东西,当然value就不对了
      

  2.   

    用RegisterClientScriptBlock()
    如下:
    <html>
      <head>
        <script language="C#" runat="server">      public void Page_Load(Object sender, EventArgs e)
          {        if (!this.IsClientScriptBlockRegistered("clientScript"))
            {
              // Form the script that is to be registered at client side.
              String scriptString = "<script language=JavaScript> function DoClick() {";
              scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<";
              scriptString += "/";
              scriptString += "script>";
              this.RegisterClientScriptBlock("clientScript", scriptString);
            }
          }     </script>
      </head>
      <body topmargin="20" leftmargin="10">
     <form id="myForm" runat="server">
    <input type="text" id="show" style="width=200"> <input type="button" value="ClickMe" onclick="DoClick()">
     </form>
      </body>
    </html>
      

  3.   

    你可以不用这种方法,用<%=后台公有变量%>给Text1赋值
    <input id="Text1" type="text" value="<%=后台公有变量%>" />
      

  4.   

    问题很明显,用Response.Write发出的任何内容都在html页面的最上方,也就是<html>标签之前,这时候你的页面中所有其它元素都还没有创建,document.getElementById('Textl')根本就什么也取不到,你应该用RegisterStartupScript方法来注册这段脚本才行。=======================
    www.webdiyer.com
      

  5.   

    换这句试试 document.All('Textl').InnerText 
    Text1是Div
    或document.All('Textl').Value
    Text1是input文本框 
      

  6.   

    webdiyer(陕北吴旗娃) ( ) 信誉:132    Blog  2007-01-06 10:03:35  得分: 0  
     
     
       问题很明显,用Response.Write发出的任何内容都在html页面的最上方,也就是<html>标签之前,这时候你的页面中所有其它元素都还没有创建,document.getElementById('Textl')根本就什么也取不到,你应该用RegisterStartupScript方法来注册这段脚本才行。=======================
    www.webdiyer.com
      
     
    同意!
    然后:如果Text1是服务器端的textbox ,试试这样:Response.Write("<script   language=javascript>");
            Response.Write("document.getElementById('<%=Textl.Client%>').innerText='99999';");
            Response.Write("alert('1111');");
            Response.Write("</script>");
      

  7.   

    按 RegisterStartupScript 的方法,有一个时间的问题,也好象解决不了这个问题。
      注册的脚本是在按钮事件一起执行的,我现在是想后台先执行一些语句,再执行脚本。
    如果和按钮事件一起执行,也可以用这个方法的
    BUTTON.Attributes.Add   我现在想做的事情是:上传一个图片,在后台把图片保存好后,再把图片的地址回送到前台控件里面,中间用一个时间间隔。   为了解决这个时间间隔,用ASP.NET触发又不了 JAVASCRIPT 事件,不知道ASP.NET有什么方法能主动的送参数到前台控件,要主动的送。  谢谢高手指教。