该页面是Ajax回发处理的公共页面Process.aspx,由此可见这样重复写代码是十分令人厌恶的: switch (Request["action"].ToString()) { case "city": InitCity(iType); break; case "city1": InitCity1(iType); break; case "city2": InitCity2(iType); break; case "ChangeEnter": ChangeEnter(); break; case "UpdateTime":
UpdateTime(); break; case "FeedbackList": FeedbackList(); break; case "MessageBoardList": MessageBoardList(); break; case "WantsList": WantsList(); break; case "iStateChange": iStateChange(); break; case "seliWorkType": seliWorkType(); break; case "Del": Del(); break; case "jobwill": SaveJobWill(); break; case "callmode": SaveCallMode(); break; case "goodskill": SaveGoodSkill(); break; case "state": SaveState(); break; case "wantwork": WantWork(); break; case "Resumes": Resumes(); break; } 为了减少大家在开发过程中重复写类似的代码,这里使用了反射。 下面提供一个例子,全国省份的二级联动菜单:
1.首先创建一个专门处理Ajax回发事件的类库 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using DBUtility;
namespace Re_Demo.AjaxProcess { public class City { StringBuilder strHtml = new StringBuilder();
#region测试 public string Test() { return "hello world!";
} #endregion
#region测试 public string Test_111(int a,string b) { return a.ToString() + b;
} #endregion
#region测试asdasdasd public string Test_111r3r43() { return "hello world!aaabbfredbdrfa";
if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdtype;
if (cmdparms != null) foreach (SqlParameter parm in cmdparms) cmd.Parameters.Add(parm); } } }
3.前台AjaxProcess.aspx页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxProcess.aspx.cs" Inherits="AjaxProcess" %> .CS页面 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Reflection; using System.Text;
public partial class AjaxProcess : System.Web.UI.Page { string action; string itype; string classname; string iParent; int index; object[] obj_parameters; ParameterInfo[] paramterinfo;