如何在文件上传完成后执行本页内的一个Javascript函数。

解决方案 »

  1.   

    后台: Response.Write("<script language='javascript'>acddd('文件传完。');</script>");
    前台页面:
    function acddd(abc)
    {
    alert(abc);
    }
      

  2.   

    不能以Response.Write的方式输出脚本调用页面的脚本,因为此输出将出现在所有页面源代码之前,而此时,页面定义的脚本还未出现,调用将出现错误.
    你应如此:
    if(!this.IsClientScriptBlockRegistered("aa"))
    {
    string mystr = "<script>f();</script>";
    this.RegisterStartupScript("aa",mystr);
    }这样,将在所有页面控件显示完成之后,才开始调用脚本,当然,你的脚本必须写在<head>里面.
      

  3.   

    在上传代码中调用Javascript函数
      

  4.   

    上传是一个提交页面的过程,既然可以提交页面那么就可以写后台的代码,可以写后台的代码就可以利用后台代码向客户端写js脚本。
    RegisterStartupScript方法别Response.Write方法更安全是因为Response.Write方法将脚本写到最前面,如果你的脚本是调用一个方法,那么就会报错(缺少对象),使用RegisterStartupScript是指在整个页面加载完(页面的最后面)之后在将脚本输出,所以这样更安全。
      

  5.   

    问个问题,为什么我这样写不回弹出对话框而直接跳转了页面?
    RegisterStartupScript("a","<script language='javascript'> alert('修改失败!');</script>");
    Response.Redirect("ProductList.aspx");
      

  6.   

    为什么不能够直接Response.Write输出脚本呢?
    在上传完成后
    RegisterStartupScript("a","<script language='javascript'> alert('上传成功!');</script>");问个问题,为什么我这样写不回弹出对话框而直接跳转了页面?
    RegisterStartupScript("a","<script language='javascript'> alert('修改失败!');</script>");
    Response.Redirect("ProductList.aspx");改成RegisterStartupScript("a","<script language='javascript'> alert('修改失败!');window.location='productlist.aspx';</script>");
      

  7.   

    后台:Response.Write("<script language='javascript'>acddd('文件传完。');</script>");
    前台页面:
    function acddd(abc)
    {
    alert(abc);
    }---------
    这个简单一点