ASP.NET中前台javascript与后台代码调用

简介:

正好项目这边有用到前后台交互的东西,一下的方法做了下试验,遇到些问题。

我用的webapplication,页面都套了模板页。需要弹出一个登陆对话框(我用的是jquery插件,弹出内容放在一个div里),

用户登陆后,在页面中直接显示用户当前信息。

问题出现在用户点击登陆按钮后关闭对话框这里,thickbox插件要求调用叫tb_remove的js方法来关闭对话框。而这个方法放在

RegisterStartupScript方法中一点作用都没有,直接放在onclientclick里调用也不行。没有办法,只好用了一个html控件,直接掉用

tb_remove函数。结果窗口管了,但是后台的事件没法执行了。

使了几个其他的方法,1 用js把值放在hiddenfield(服务器控件)里,后台取,在website类型的例子里可以取到,但是放在项目中就不行了

用js写到cookie中,不稳定,有时可以取到值,有时不可以了。而且这样做还有安全的问题。

思前想后好像没有什么好的方法解决这个问题了,哎,没办法。

只好使出绝招了==》Callback,这个早先出现在asp.net的ajax方法。但是又不确定,能不能修改Session值。

try了一下,还好。各个功能都ok了,所以这里给大家提下。还有callback这个方法可以用于前后台交互的。

下面是网上找到的方法。大家还有什么方法不妨说下。

 

 

1.如何在JavaScript访问C#函数?

  2.如何在JavaScript访问C#变量?

  3.如何在C#中访问JavaScript的已有变量?

  4.如何在C#中访问JavaScript函数?

  问题1答案如下:

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

  方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;

  2、在前台写一个js函数,内容为document.getElementById("btn1").click();

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

  方法二:1、函数声明为public

  后台代码(把public改成protected也可以)

public string ss() 

return("a"); 
}

  2、在html里用可以调用

  前台脚本

<script language=javascript>

  var a = "<%=ss()%>";

  alert(a);

</script>

  方法三:1、

<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() 

//……比如计算某值 
}

  问题2.如何在JavaScript访问C#变量?

  答案如下:

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

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

  方法二:1、如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为''或"++"

  方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本

"<script language='javascript'>var temp=" + tmp + "</script>"

  tmp是后台变量,然后js中可以直接访问temp获得值。

  问题3.如何在C#中访问JavaScript的已有变量?

  答案如下:

  方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;2、后台用request["id"]来获取值;

  方法二:可以用cookie或session

  问题4.如何在C#中访问JavaScript函数?

  答案如下:

  c#代码中执行javaScript函数:

  方法一:1、

Page.RegisterStartupScript("ggg"," ");

  方法二:使用Literal类,然后

private void Button2_Click(object sender, System.EventArgs e) 

string str; 
str=" "; 
//Literal1.Visible=true; 
Literal1.Text=str; 
}

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!



















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/02/20/1394586.html ,如需转载请自行联系原作者

相关文章
|
3月前
|
API
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
|
3月前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
48 5
|
3月前
|
C# 开发者 Windows
在VB.NET项目中使用C#编写的代码
在VB.NET项目中使用C#编写的代码
53 0
|
27天前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
3月前
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
73 0
|
3月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
99 1
|
3月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
3月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
3月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
3月前
|
开发框架 .NET 编译器
【Azure Developer】使用Azure PubSub服务示例代码时候遇见了.NET 6.0的代码转换问题
【Azure Developer】使用Azure PubSub服务示例代码时候遇见了.NET 6.0的代码转换问题
下一篇
无影云桌面