.net与javascript脚本的交互方法总结

本文实例总结了.net与javascript脚本的交互方法,分享给大家供大家参考。具体方法如下:

1.asp.net呼叫js

代码如下:

Response.Write("<script language=javascript>");
Response.Write("alert('登峰欢迎您 ');" );
Response.Write("location.href='login.aspx';") ;
Response.Write("</script>") ;

在这里情况下,你可以调用页面中的JS脚本的函数都可以

2、js脚本如何访问服务器控件的值

界面上有一个TextBox控件,ID为Name,js里可以采用如下脚本取Name的值

代码如下:

var myvalue=document.all('Name').value;

3、服务器控件如何取js中变量的值
方法是在界面上放一个隐藏的控件HtmlInputHidden,然后设置为以服务器控件运行,这样在js脚本中和ASP.NET代码里都可以访问到该控件的值
js中给服务器控件赋值:

代码如下:

var bt=document.all('Name').value;
bt.value='名称';

ASP.NET中使用Name.Value来访问。

4.前台和后台之间函数的调用


代码如下:

<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function callServer(arg){
var oTb = document.getElementById('<%=editValue.ClientID %>');
// arg中是传给服务器的变量
arg = oTb.value;
<%=ClientScript.GetCallbackEventReference(this, "arg", "receiveServerResult", null, true)%>
}
function receiveServerResult(result){
// 在这里添加处理服务器返回结果的逻辑,result变量是服务器返回的结果
alert(result);
}
</script>
...//此处省略部分代码
<asp:TextBox ID="editValue" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit Data" OnClientClick="callServer();return false;" />
</head>

CS文件:
C# code

代码如下:

//页面类继承ICallbackEventHandler接口,并实现其中的两个方法
public partial class _Default : System.Web.UI.Page , ICallbackEventHandler
{
private string m_strResult = "";
#region ICallbackEventHandler Members
public string GetCallbackResult()
{
// 返回服务器端处理结果给receiveServerResult方法
return m_strResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
// eventArgument是客户端传来的变量,对应arg变量
// 在这里添加服务器端处理逻辑...
m_strResult = eventArgument;
}
#endregion
}

5.javaScript函数中执行C#代码中的函数:

方法一:
①、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
②、在前台写一个js函数,内容为

代码如下:

document.getElementById("btn1").click();

③、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:
①、函数声明为public
后台代码(把public改成protected也可以)

代码如下:

public string ss()
{
return("a");
}

②、在html里用<%=fucntion()%>可以调用
前台脚本

代码如下:

<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>

方法三:
①、

代码如下:

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument)
{
var theForm = document.Form1; //指runat=server的form
theForm.__EVENTTARGET.value = eventTarget;
theFrom.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
-->
</script>
<input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:doPostBack('Button1','')">

方法四:

代码如下:

<script language="javascript">
function SubmitKeyClick()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.all.FunName.value="你要调用的函数名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> <!--用来存储你要调用的函数 -->

在.CS里有:

代码如下:

public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}
public void enter()
{
//……比如计算某值
}

6.在JavaScript访问C#变量

方法一:通过页面上隐藏域访问

代码如下:

<input id="xx" type="hidden" runat="server">

方法二:如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"
方法三:或者你可以在服务器端变量赋值后在页面注册一段脚本
"<script language='javascript'>var temp=" + tmp + "</script>"
tmp是后台变量,然后js中可以直接访问temp获得值。

7.在C#中访问JavaScript函数

c#代码中执行javaScript函数:
方法一:

代码如下:

Page.RegisterStartupScript("ggg","<script>SetVisible(1); </script>");

方法二:使用Literal类,然后

代码如下:

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;
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • asp.net Server.MapPath方法注意事项第1/2页

    在做一个客户推广系统的时候,里面有一个模板管理模块,需要管理员添加模板,包括模板的名称.说明和缩略图等,在这里上传图片的功能,我采用了比较传统的方法,进行上传,测试没有问题.但当我发布之后,对存储图片的文件夹创建了虚拟目录,并赋予该目录写入的权限,但是,当我上传图片的时候,总是失败.以前没遇到过这种情况,觉得很是怪异,所以想尽办法去解决. 首先,检查上传目录的权限,我添加了NetWork Service用户的写入.修改权限,结果还是失败,然后我将权限设置为EveryOne还是失败,看来不是权限的

  • asp.net刷新本页面的六种方法总结

    第一: private void Button1_Click( object sender, System.EventArgs e )   {     Response.Redirect( Request.Url.ToString( ) ); } 第二: private void Button2_Click( object sender, System.EventArgs e )   {     Response.Write( "     <script language=javascri

  • .NET中方法的注意事项总结

    本文较为详细的总结了.NET中方法的注意事项.分享给大家供大家参考.具体分析如下: 1. 方法中return 会终止整个方法段. 而break只能终止当前循环. 2. 方法就是一对可用代码的复用. a . 对于可重用的代码,在vs中选中,右键  重构  提取方法.即可自动封装成一个方法. b . 编程中,当我们调用的一个未定义的方法. Ctrl + . 然后Enter.会自动生成相应的方法. 3. 对于方法返回值,如果定义了返回值,方法中必须有对应的return. 没有返回值得方法可以用void

  • ASP.NET过滤HTML字符串方法总结

    本文实例讲述了ASP.NET过滤HTML字符串的方法,供大家参考使用,具体代码如下: /// <summary>去除HTML标记 /// /// </summary> /// <param name="Htmlstring">包括HTML的源码</param> /// <returns>已经去除后的文字</returns> public static string GetNoHTMLString(string Ht

  • Asp.Net alert弹出提示信息的几种方法总结

    1.ClientScript.RegisterStartupScript(GetType(),"message","<script>alert('第一种方式,无白屏!');</script>"); 2.HttpContext.Current.Response.Write("<script>alert('第二种方式,有白屏!')</script>"); 3.public static void Sho

  • 调试ASP.NET应用程序的方法和技巧

    以前使用ASP开发过Web应用程序的人员肯定知道调试Web应用程序是多么麻烦.在ASP中,调试是痛苦的,通常包括了使用Response.Write()方法输出变量的值.那么请问一下自己:你有多少次忘记了在布署应用程序之前删除了调试语句? 随着.NET框架组件的出现这种情况发生了彻底的改变.在.NET中,你可以使用Visual Studio .NET中的调试程序跟踪整个Web应用程序的执行,或者使用System.Web.TraceContext名字空间中的Trace类.本文演示如何使用Trace类

  • ASP.NET 页面传值常用方法总结

    一.表单提交: 复制代码 代码如下: <formaction= "target.aspx" method = "post" name ="form1"> <input name = "param1" value ="1"/> <input name = "param2" value ="2"/> </form> ....

  • Asp.net禁用页面缓存的方法总结

    1.在Asp页面首部<head>加入  复制代码 代码如下: Response.Buffer   =   True      Response.ExpiresAbsolute   =   Now()   -   1      Response.Expires   =   0      Response.CacheControl   =   "no-cache"      Response.AddHeader   "Pragma",   "No-

  • ASP.NET技巧:数据岛出到Excel最为简易的方法

    只需将ContentType 设置为 "application/vnd.ms-excel",表示以Excel方式输出.代码如下:DataToExcel.aspx:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataToExcel.aspx.cs" Inherits="DataToExcel" %> <html xmlns=

  • asp.net中几种常用的身份验证方法总结

    前言 在B/S系统开发中,经常需要使用"身份验证".因为web应用程序非常特殊,和传统的C/S程序不同,默认情况下(不采用任何身份验证方式和权限控制手段),当你的程序在互联网/局域网上公开后,任何人都能够访问你的web应用程序的资源,这样很难保障应用程序安全性.通俗点来说:对于大多数的内部系统.业务支撑平台等而言,用户必须登录,否则无法访问和操作任何页面.而对于互联网(网站)而言,又有些差异,因为通常网站的大部分页面和信息都是对外公开的,只有涉及到注册用户个人信息的操作,或者网站的后台

  • 充分利用ASP.NET的三种缓存提高站点性能的注意方法

    ASP.NET提供三种主要形式的缓存:页面级输出缓存.用户控件级输出缓存(或称为片段缓存)和缓存API. 尽早缓存:经常缓存  您应该在应用程序的每一层都实现缓存.向数据层.业务逻辑层.UI或输出层添加缓存支持.内存现在非常便宜-因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高. 页面级输出缓存 最简单的缓存形式,只是在内存中保留为响应请求而发送的HTML的副本. 要实现页面输出缓存,只要将一条OutputCache指令添加到页面即可. <%@ OutputCache Du

  • asp.net 页面逐步呈现的方法总结

    详细介绍,请参考:flush 让页面分块,逐步呈现假设有一个页面,一开始显示 cnblogs 的 logo 图标,3 秒钟后显示 csdn 的 logo 图标. 我根据上文介绍,用 asp.net 实现了上述功能. ASP.NET 代码如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="flush让页面分块逐步呈现.aspx.cs" Inherit

随机推荐