前台调用后台方法 后台调用前台JS

来源:互联网 发布:螺旋板换热器计算软件 编辑:程序博客网 时间:2024/04/27 09:42

我给你的方法如下:
1、后台方法:
protected string CsharpVoid(string strCC)
{
strCC = "http://" + strCC;
return strCC;
}
2、前台页面JavaScript方法:
<script language="javascript" type="text/javascript">
var v = "www.baidu.com";
var s = '<%=CsharpVoid("'+v+'")%>';
document.write(s);
</script>
你试试,我在Visual Studio.Net2005中测试成功!结果在页面上写了【http://www.baidu.com/】的字符串!
仔细看看这句话:var s = '<%=CsharpVoid("'+v+'")%>'; 里面的双引号和单引号!
你出现此问题直接原因还是在写码的不规范上:你的var s = "<%=CsharpVoid("www.esoutong.com")%>"; 这句话里外都用双引没有问题,可以被解释成功,但为了代码的整洁易读还是需要养成良好的写码习惯,使代码更易被读懂,避免因不规范的写码习惯而产生的不必要的错误!在JavaScript教程等书中写:在JavaScript中可以使用单引,也可以使用双引,但当在引号中还需要使用引号时可使用单引和双引的交替使用,使代码清晰易读并避免不必要的错误发生。当CsharpVoid("")中必须使用双引号时,你在定义var s时就必须使用单引号,如果还使用双引号想把原来的www.baidu.com替换为变量就会报错了(将var s = '<%=CsharpVoid("'+v+'")%>'; 这句的单引改双引写成var s = "<%=CsharpVoid(""+v+"")%>"; 是无法被解释成功的),这个错误就是不规范写码造成的。所以规范写码可以避免此类错误的发生!
附:这里要给你说明的是网友高_超的这句:var s = "<%=CsharpVoid('www.baidu.com')%>";是错误的,在Visual Studio.Net2005中是不会被编译成功的。在【<%=】之后的【CsharpVoid】是后台的方法,必须使用双引号而不能使用单引号定义传入的字符串。
一般的写法:

 ClientScript.RegisterStartupScript(this.GetType(), "js", "test()", true);

response.write("<script>test()</script>");

页面有AJAX写法:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "js", "setTicketStatus()", true);

-----------------------------------------------------------------------------------------------------------------------

后台: AuditButton.Attributes.Add("onclick", "return fn();");

前台:

<script language="javascript" type="text/javascript">
    function fn() {
        if (this.disabled)  return false ;
        if (confirm('确认执行审核操作?') == false ) return false  ;
        var objSave = document.getElementById("spAudit");
        if (objSave != null) {
            //objSave.style.display = "hide";
            objSave.innerText = "审核";
            objSave.style.color = "#CCCCCC";
        }
        return true;
    }
</script>

-------------------注意,有返回值,一定要在调用方法时加上 return 方法名-----------------------------------------------


 

原创粉丝点击