随笔 - 139, 文章 - 5, 评论 - 39, 阅读 - 16万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

C#后台调用前台javascript的五种方法

Posted on   小飞龙(Jack)  阅读(7120)  评论(5编辑  收藏  举报

C#后台调用前台javascript的五种方法

由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。在网上找了找,发现有三种方法可以访问到前台代码:

第一种,OnClientClick    (vs2003不支持这个方法)
<asp:Button ID="Button1" runat="server" Text="Button"  OnClientClick="client_click()" OnClick="Button1_Click"  />
client_click() 就是javascript的一个方法。

第二种,Button1.Attributes.Add("onclick", "return Client_Click()"); 
“Client_Click() “是一个前台方法,可以替换成一般的脚本如:retrun confirm('确定删除吗?')

第三种,是我自认为最灵活的一种,ClientScript.RegisterStartupScript
例子:StringBuilder sb = new StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("Button2_onclick('" + serverPath + "')");
        sb.Append("</script>");
        ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

第四种. 用Response.Write方法写入脚本

比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert();</script>");

这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定义,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");

第五种 用ClientScript类动态添加脚本

    用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

    ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2007-09-17 正则表达式
点击右上角即可分享
微信分享提示