后台:protected void Button1_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>Myfun();</script>");
    }
前台:javascript:
 function Myfun() {
            document.getElementById('Text1').value = 'abc';
        }
但是怎么也实现不了呢。为什么啊?

解决方案 »

  1.   

    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "MyFun()", true);试试吧
      

  2.   

    楼主,可能会有你说的几个问题。第一:请查看您的form是否为服务端表单,意思是加了runat=server没有
    第二:请查看您的Text1的ID是否正确,可能asp.net给您的控件加了标识
    第三:你注册的脚本在您的Text1前面还是在后面,如果在前面的话,是找不到您的Text1节点的
      

  3.   

    参考:
    http://www.cnblogs.com/insus/articles/1945582.html
      

  4.   

    3楼的,第三,什么意思?我是在aspx   head里定义的javascript方法,这样做不行吗?为什么?
      

  5.   

    楼主,你用的方法没错,但是请查看服务端生成的ID是否和你js查找的id匹配,和你的form加了runat=server没
      

  6.   

    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dddd", "fun()", true);
      

  7.   

    试试呗~
    this.RegStartupScript("javascript:Myfun()");
      

  8.   

    因为你页面刷新了!
    所以这是不能现实的
    除非你用AJAX
      

  9.   

    页面刷新?我好像看过,我js是在head里定义的,那怎么样才能成功呢?是不是要改变定义js的位置?具体写在什么地方呢?
      

  10.   

    如果LZ 真确定不了,给你一个不是方法的方法,但是可以解决。cs里:ViewState["js"]="Myfun();";aspx
    在页面最后加:<%= ViewState["js"] %>这样应该可以。
      

  11.   

    补充一下:
    ViewState["js"]="<script>Myfun();</script>";
      

  12.   

    呵呵,你是否觉得别人积分低,能力就差呢。请问你一个问题,别人在提交表单的时候,是否算刷新了,不是ajaxpost而是最基础的post提交,提交过后,页面刷新了吧?难道他的js不能执行?搞笑。
      

  13.   

      ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>window.onload-function(){Myfun();}</script>");
      

  14.   

    我在告诉你吧。首先他设计页面的时候,head里面声明了一个js函数。然后呢,客户端post到服务端的时候,服务端往他输出流里面注册脚本,如果是block方式注册,那么函数注册在form和一些系统节点比如说viewstate节点的下面。如果startup注册的话,就在表单尾部。我觉得你还是先去看看再说。分低不代表什么都不知道
      

  15.   

    引入jquery 应该可以解决; var j = @"$(document).ready(function(){    
                " + JS + "});";
            ClientScript.RegisterClientScriptBlock(page, page.GetType(), "", j, true);
    独家秘籍,一般都灵的
      

  16.   

    这种方法很常用,我个人没有碰到过问题!建议楼主把你的前代码(*.aspx)也贴出来要确定的是:
    1:有没有Myfun这个方法被定义在前台(合适的位置)?2:后台那个注册脚本的代码到底执行没有(脚本是否成功被注册到前台)?
      

  17.   

    其实不应该贴aspx代码,应该把客户端呈现的html代码贴出来就可以发现问题了
      

  18.   

    采用 ajax 像2L 的写法就可以了,本来语句就是执行本地脚本的,不需要再加<script>啦
      

  19.   

    其实你在后台的时候已经创建了一个JavaScript了,ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>Myfun();</script>");中的<script>Myfun();</script>就是在客户端创建一个JavaScript。
    而你在前台的时候又创建了一个JavaScript。
     function Myfun() {
      document.getElementById('Text1').value = 'abc';
      }
    ,但是你只调用了后台的那个JavaScript,根本没有调用前台的JavaScript。而你后天的Myfun根本没有方法体,而且不合规范。
    你要明白ClientScript.RegisterStartupScript这个方法的意思,他是在客户端上创建一个JavaScript,而不是调用JavaScript方法。