function AddReport(rid)
{
window.parent.location.href="ContractEdit.aspx?Operation=add&ProjectID=11&PersonID=" + rid;
}
我用一个按钮的onclick调用函数AddReport('<%=rid%>'),但是页面并没有得到后台的赋的值,而是显示PersonID=<%=rid%>,
函数的值解释为字符串啦,请大家解答一下,谢谢.

解决方案 »

  1.   

    不能直接这样取啊,你把后台的值赋给前台的某个控件,把空间隐藏,然后getElementByid取那个控制的值
      

  2.   

    AddReport(' <%=rid%>') 说明这个函数的入口参数就是个字符串,内容是"<%=rid%>",把调用时入口参数里的单引号去掉,AddReport(<%=rid%>)应该就对了
      

  3.   

    呵呵,谢谢两位执情解答.ShadowInWind 你说的是另一种方法,可以实现,但我现在是想知道为什么会传过去变字符串,我之前这样调用都没问题.caibird1984 你说去掉两个单引号,这样脚本会出错的.
      

  4.   

    AddReport(' <%=rid%>') 这样调相当于这个结果:function AddReport() 

       var rid = '<%=rid%>';
       window.parent.location.href="ContractEdit.aspx?Operation=add&ProjectID=11&PersonID=" + rid; 
    } 就像我所说的,因为在入口参数里传进去就是“<%=rid%>”这么个字符串,不是实际的后台变量的值,所以拼出来的URL最后的PersonID自然也是“<%=rid%>”这么个字符串。
    这种ASP的绑定方法我好久没用过了,不过原因应该是这样。如果方便的话把你的Buttion的HTML代码贴下吧,还有具体的脚本错误提示是什么?我不知道是不是应该写做<%#rid%>(这样说明rid是个变量,在数据绑定时执行,如果是等号说明rid是个常量,在页面初始化时执行,好象是这样),要不就是后台的rid没有设置成public权限?太长时间不用确实生疏了,抱歉抱歉
      

  5.   

    呵呵,caibird1984 谢谢你,这样赋值确实可以,我既然没想到.想问题有时候真的是应该集思广益,谢谢大家,散分啦.