C#和JavaScript交互
?后台代码:
4.在客户端使用如下JavaScript语法调用web服务方法
//Webservice是web服务页面名称 HelloWord为web服务页面类中的方法,function为回调JavaScript函数主要是处理返回的结果
?WebService.HelloWorld("helloWord",function(res)??? ??? ???
???? {
??? ??? alert(res);
???? });???
前台JavaScript代码:
?
后台代码:
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
???? "<script language='javascript'>var temp=" + tmp + "</script>"
??? tmp是后台变量,然后js中可以直接访问temp获得值。?
问题3 .如何在C#中访问JavaScript的已有变量?
方法一:前台使用服务器文本控件隐藏域,将js变量值写入其中;后台直接通过控件id访问和调用
方法二:可以用cookie或session存储变量值,后台直接使用
问题4 C#代码执行JavaScript函数和调用JavaScript函数
方法一:尽量少用Response.Write(< script>< /script>);这种方法,它会影响CSS导致页面效果偏差
方法二:C#中使用ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('"+param1+"','"+param2+"')",
示例:
脚本函数
function CSharpCallJs(param1,param2)??
??????? {??
??????????? alert(param1 + param2);??
??????? }?
页面后台代码
ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('" + param1 + "','" + param2 + "');", true);//关键代码调用页面脚本函数的代码
方法三:C#中使用 Page.RegisterStartupScript("ggg","<script>CSharpCallJs“”+param1+“,"+param2+“);"</script>");
方法四:C#中使用Literal类(类似label类)
示例代码
private void Button2_Click(object sender, System.EventArgs e)
{
??? string str;
??? str="<script language='javascript'>";
??? str+="selectRange()";
??? str+="</script>";
??? //Literal1.Visible=true;
??? Literal1.Text=str;
}?
?
?
?