• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET服务端执行js脚本(备忘)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

T_T : [之所以需要用到以下方式来在客户端执行js脚本是因为ASP.NET中的OnClick和OnClientClick的机制问题。(Html页面中的元素(比如button)的onclick不止绑定一个方法,其中绑定的方法有OnClientClick注册的,也有OnClick注册的,关键是OnClientClick注册的方法总是被放在OnClick注册的方法前面,如下例子)]

Confusion:

1 <asp:Button ID="btnSave" OnClick="btnSave_Click" OnClientClick="javascript:RefreshGrid();" runat="server" />
2
3 ###########################################################################################################################################
4 html页面结果:
5
6 <input type="submit" name="ctl00$MainContent$btnSave" value="保存"
onclick="javascript:RefreshGrid(); WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$btnSave&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))"
id="ctl00_MainContent_btnSave" class="button" />

#############################################################################################################################################

解决方法:

Template:

1 var jsCode= "<script language='javascript'>(function (){ /*你的js代码*/})();  </script>";
2 if (!this.ClientScript.IsStartupScriptRegistered(this.GetType(), "jsCode"))
3 {
4   this.ClientScript.RegisterStartupScript(GetType(), "jsCode", jsCode);
5 }

Example:

1 var refresh = "<script language='javascript'>(function (){ window.parent.RefreshGrid();})();  </script>";
2 if (!this.ClientScript.IsStartupScriptRegistered(this.GetType(), "refresh"))
3 {
4   this.ClientScript.RegisterStartupScript(GetType(), "refresh", refresh);
5 }




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET页面--值状态发布时间:2022-07-10
下一篇:
ASP.NET——实现两个下拉框动态联动发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap