转自:http://blog.csdn.net/wlccomeon/article/details/17270427
一、前台调用后台
前台调用后台的方法一共可分为两大类:使用Html控件和使用Asp控件。
1、Asp控件
非常方便,方便到让你吃惊!比如前台放上一个LinkButton,直接双击就可以进入到后台,然后轻松编写自己需要的代码!
例如在前台添加一个服务器控件Button
- <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
双击,进入后台,可添加自己的代码,这里举一个简单的:
- protected void Button1_Click(object sender, EventArgs e)
- {
- Response.Write("服务器控件!");
- }
2、html控件
首先在表单中添加一个html控件或者仅仅一个a标签:
- <form id="login">
- <a href="#" id="strLogin" name="strLogin" onclick="checkInfo()">登录</a>
- </form>
- 然后,添加Js函数来提交表单:
-
- function Login() {
- var form = document.forms["login"];
- form.action = "default.aspx";
- form.method = "post";
- form.submit();
- }
运行之后,点击“登陆”a标签,即可对default进行刷新,从而运行后台代码。需要注意的是,这种方法想要触发的后台代码必须写在Page_Load里。
首先添加一个a标签:
- <a href="#" onclick="loginQuit()">退出</a>
编写JS代码
-
- function loginQuit() {
-
- $.ajax({
- type: "Post",
- url: "Exit.ashx",
- onSubmit: function () {
-
- },
-
-
- success: function (result) {
- if (result == "T") {
-
-
- document.getElementById("loginAfter").style.display = "none";
- document.getElementById("loginBefore").style.display = "block";
-
-
- document.getElementById("UserName").value = "";
- document.getElementById("txtCode").value = "";
- document.getElementById("Password").value = "";
- }
- else {
- alert('退出失败!')
- }
- }
- });
-
- }
新建一个一般处理程序Exit.ashx,添加代码:
- public void ProcessRequest(HttpContext context)
- {
- context.Session["UserName"]=null;
- context.Session["UserID"] = null;
-
- context.Response.ContentType = "text/plain";
-
- context.Response.Write("T");
- }
后台代码就可以根据Session是否存在来进行自己的相关操作了。
二、后台调用前台
后台调用前台的方法有则有很多,目前我用到的大致有两种:
1、使用Response.Write方法
该方法只能调用js内部自带的函数:
- Response.Write("<script type='text/javascript'>alert('成功!');</script>");
如果在后台经常需要用到这个JS函数的话,可以抽象出为一个类(本例为 jumpFrame),在类中添加方法:
- public static void AlertBox(string errMsg)
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("<script language=\"javascript\"> \n");
- sb.Append("alert(\"" + errMsg.Trim() + "\"); \n");
-
- sb.Append("</script>");
-
- System.Web.HttpContext.Current.Response.Write(sb.ToString());
- }
调用:
- protected void Button1_Click(object sender, EventArgs e)
- {
- jumpFrame.AlertBox("成功!");
- }
2、用ClientScript类动态添加脚本
这个方法可以使用JS自定义函数,用法如下:在想调用某个Javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。
- ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
这些个方法从探索到实践到解决其中出现的各种问题到最后能够成功运用于所在的项目,费了很大很大的精力。在这次历练中对于没有接触到的知识能够简单的运用是一个非常好的学习过程,而对于已经看过相关的视频如新闻发布系统和北大青鸟课程则是一个很好的回顾的过程。学而不用,久而久之就会生疏甚至遗忘;而用中学则比单纯的看视频跟着敲代码掌握的更牢、体会的更深。最后,如果大家有更好的方法或者我在上面的运用有什么不妥的地方还请各位不吝指教!
|
请发表评论