Asp.net 后台输出js方法

作者:朋克周 | 创建时间: 2023-06-28
很多时候触发事件等到返回值要在页面上显示一下成功的信息,但是如何在后台弹出那个框呢?...
Asp.net 后台输出js方法

操作方法

首先我们看一下在页面上写脚本语言实现 弹窗 <form id="form1" runat="server"> <div> <asp:Button ID="btnAlter" runat="server" Text="弹窗" /> </div> <script type="text/javascript"> var btn = document.getElementById("btnAlter"); btn.onclick = function () { alert('我出来咯'); } </script> </form>

用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("我要出来咯2");</script>");  此方法缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定 义,比如 Response.Write("<script type='text/javascript'>function myfun(){}</script>");

HtmlGenericCOntrol是一个通用标签生成的类,可以用来生成js也可以用来生成任何其它的标签 HtmlGenericControl script = new HtmlGenericControl("script"); script.Attributes.Add("type", "text/javascript"); //IAttributeAccessor script.InnerHtml = "alert('我是用HtmlGenericControl生成的 script')"; this.Header.Controls.Add(script);//把script 标签添加到head 标签里。

ClientScript 可以方便地管理 JavaScript, 应该说 ClientScript.RegisterClientScriptBlock 与 ClientScript.RegisterStartupScript 只有一点区别, 那就是 RegisterClientScriptBlock 将脚本代码写在 <form> 之后, 而 RegisterStartupScript 将代码写在 </form>(注意是结束标签)之前。 public void RegisterClientScriptBlock(Type type, string key, string script)public void RegisterClientScriptBlock(Type type, string key, string script, bool addScriptTags) public void RegisterStartupScript(Type type, string key, string script)public void RegisterStartupScript(Type type, string key, string script, bool addScriptTags) 可以看出二者语法相同。 type 要注册的启动脚本的类型。 key 要注册的启动脚本的键,也就是你自己给这段脚本起的名字。相同 key 的脚本被当作是重复的,对于这样的脚本只输出最先注册的,ClientScriptBlock 和 StartupScript 中的 key 相同不算是重复的。 script 脚本代码。 addScriptTags 是否添加 <script> 标签,如果脚本代码中不含 <script> 标签,则应该指定该值为 true,若不指定该值,会被当作 false 对待。

clientscript //此段代码会放置到form的前面 string alterstr= "alert('我要出来咯 clientscript')"; this.ClientScript.RegisterClientScriptBlock(this.GetType()   , Guid.NewGuid().ToString(),alterstr, true);

//此段代码会放置到form的后面 this.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alter('我要出来咯 startscript')", true);

this.ClientScript.RegisterClientScriptInclude(Guid.NewGuid().ToString(), //    "demo.js");

职责单一

把弹窗封装成一个类调用: public static class PageEx { /// <summary> /// /// </summary> /// <param name="page">页面</param> /// <param name="statement">脚本</param> /// <param name="type">类型:code js脚本代码,file js文件</param> /// <param name="location">放在form里的位置</param> public static void MessageBox(this Page  page,string statement, string type ="code",string location="bottom") { if (type=="code") { page.ClientScript.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), statement,true); } else if (type == "file") { page.ClientScript.RegisterClientScriptInclude( Guid.NewGuid().ToString(), statement); } } }

要用到时,页面调用: PageEx.MessageBox(this,"alert('mymsg')",location:"top"); PageEx.MessageBox(this, "demo.js","file"); this.MessageBox("alert('mymsg')");

点击展开全文

更多推荐