.net与javascript脚本的交互方法总结
本文实例总结了.net与javascript脚本的交互方法,分享给大家供大家参考。具体方法如下:
1.asp.net呼叫js
Response.Write("<scriptlanguage=javascript>");
Response.Write("alert('登峰欢迎您');");
Response.Write("location.href='login.aspx';");
Response.Write("</script>");在这里情况下,你可以调用页面中的JS脚本的函数都可以
2、js脚本如何访问服务器控件的值
界面上有一个TextBox控件,ID为Name,js里可以采用如下脚本取Name的值
varmyvalue=document.all('Name').value;3、服务器控件如何取js中变量的值
方法是在界面上放一个隐藏的控件HtmlInputHidden,然后设置为以服务器控件运行,这样在js脚本中和ASP.NET代码里都可以访问到该控件的值
js中给服务器控件赋值:
varbt=document.all('Name').value;
bt.value='名称';ASP.NET中使用Name.Value来访问。
4.前台和后台之间函数的调用
<headrunat="server">
<title>UntitledPage</title>
<scripttype="text/javascript">
functioncallServer(arg){
varoTb=document.getElementById('<%=editValue.ClientID%>');
//arg中是传给服务器的变量
arg=oTb.value;
<%=ClientScript.GetCallbackEventReference(this,"arg","receiveServerResult",null,true)%>
}
functionreceiveServerResult(result){
//在这里添加处理服务器返回结果的逻辑,result变量是服务器返回的结果
alert(result);
}
</script>
...//此处省略部分代码
<asp:TextBoxID="editValue"runat="server"/>
<asp:ButtonID="btnSubmit"runat="server"Text="SubmitData"OnClientClick="callServer();returnfalse;"/>
</head>
CS文件:
C#code
//页面类继承ICallbackEventHandler接口,并实现其中的两个方法
publicpartialclass_Default:System.Web.UI.Page,ICallbackEventHandler
{
privatestringm_strResult="";
#regionICallbackEventHandlerMembers
publicstringGetCallbackResult()
{
//返回服务器端处理结果给receiveServerResult方法
returnm_strResult;
}
publicvoidRaiseCallbackEvent(stringeventArgument)
{
//eventArgument是客户端传来的变量,对应arg变量
//在这里添加服务器端处理逻辑...
m_strResult=eventArgument;
}
#endregion
}5.javaScript函数中执行C#代码中的函数:
方法一:
①、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
②、在前台写一个js函数,内容为
document.getElementById("btn1").click();③、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
方法二:
①、函数声明为public
后台代码(把public改成protected也可以)
publicstringss()
{
return("a");
}②、在html里用<%=fucntion()%>可以调用
前台脚本
<scriptlanguage=javascript> vara="<%=ss()%>"; alert(a); </script>
方法三:
①、
<scriptlanguage="javascript">
<!--
function__doPostBack(eventTarget,eventArgument)
{
vartheForm=document.Form1;//指runat=server的form
theForm.__EVENTTARGET.value=eventTarget;
theFrom.__EVENTARGUMENT.value=eventArgument;
theForm.submit();
}
-->
</script>
<inputid="Button1"type="button"name="Button1"value="按钮"onclick="javascript:doPostBack('Button1','')">方法四:
<scriptlanguage="javascript">
functionSubmitKeyClick()
{
if(event.keyCode==13)
{
event.cancelBubble=true;
event.returnValue=false;
document.all.FunName.value="你要调用的函数名";
document.form[0].submit();
}
}
</script>
<INPUTonkeypress="SubmitKeyClick()"id="aaa"type="text">
<inputtype="hidden"name="FunName"><!--用来存储你要调用的函数-->在.CS里有:
publicPage_OnLoad()
{
if(!Page.IsPost())
{
stringstrFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case"enter()":
enter();//调用该函数
break;
case"其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}
publicvoidenter()
{
//……比如计算某值
}6.在JavaScript访问C#变量
方法一:通过页面上隐藏域访问
<inputid="xx"type="hidden"runat="server">
方法二:如后台定义了PUBLICSTRINGN;前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"
方法三:或者你可以在服务器端变量赋值后在页面注册一段脚本
"<scriptlanguage='javascript'>vartemp="+tmp+"</script>"
tmp是后台变量,然后js中可以直接访问temp获得值。
7.在C#中访问JavaScript函数
c#代码中执行javaScript函数:
方法一:
Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>");方法二:使用Literal类,然后
privatevoidButton2_Click(objectsender,System.EventArgse)
{
stringstr;
str="<scriptlanguage='javascript'>";
str+="selectRange()";
str+="</script>";
//Literal1.Visible=true;
Literal1.Text=str;
}
希望本文所述对大家的C#程序设计有所帮助。