博客裏的好多文章都是本人看着比較好,就轉過來的,好少本身親自去寫點什麼,也不多把本身學的一點心得於你們分享,今天特別想聊一下,關於本人作Net開發時的那段回憶!jquery
1、關於知識的回憶web
還記得Handlere嗎?ajax
我記得Handler作圖片防盜鏈時,有這麼一個功能! json
1 public class ImgHandlerTest: IHttpHandler 2 { 3 public void ProcessRequest(HttpContext context) 4 { 5 Uri url = context.Request.UrlReferrer;//從哪一個地址過來的 6 if (url == null) 7 { 8 context.Response.End(); 9 10 } 11 if (url.Host.ToString().Contains(".oa.com")) 12 { 13 context.Response.WriteFile(context.Request.FilePath); 14 } 15 else 16 { 17 context.Response.End(); 18 19 } 20 context.Response.End(); 21 } 22 public bool IsReusable 23 { 24 get { return true; } 25 } 26 }
還記得Module嗎?那時咱們作過IP禁止訪問,也就是能夠限制某些IP訪問咱們的程序數組
1 public class IpTestModule:IHttpModule 2 { 3 4 public void Init(HttpApplication context) 5 { 6 context.BeginRequest += context_BeginRequest; 7 } 8 9 void context_BeginRequest(object sender, EventArgs e) 10 { 11 //string ip = Common.CommonFun.GetIP(); 12 //if (ip == "127.0.0.1") 13 //{ 14 // HttpApplication app = sender as HttpApplication; 15 // app.Context.Response.End(); 16 //} 17 } 18 public void Dispose() 19 { 20 21 } 22 }
用Module的時候,不知道你記得否了,沒有asp.net mvc 的時候,你是否用Module作過登陸驗證呢?服務器
public class LoginModule:IHttpModule,System.Web.SessionState.IRequiresSessionState { public void Dispose() { throw new NotImplementedException(); } public void Init(HttpApplication context) { context.AcquireRequestState+=context_AcquireRequestState; } private void context_AcquireRequestState(object sender, EventArgs e) { //HttpApplication app = sender as HttpApplication; //string url = app.Context.Request.RawUrl; //if (url.Contains(".aspx") && !url.Contains("login.aspx")||(url.Contains("ashx")&&!url.Contains("CreateImageCode.ashx"))) //{ // if(app.Context.Session["LoginUser"] ==null) // { // app.Context.Response.Redirect("~/login.aspx"); // app.Response.End(); // } //} } } //固然還有一樣的另外一種方法
那時候你用過EasyUI吧,你記得EasyUI裏哪些東西是你容易忘掉或者入坑的嗎?mvc
//easy ui文檔要好好看吧 //Id ID 你入過坑嗎? //easy ui的客戶端表單驗證你會嗎? //知道datagrid列表的選中行ID經過什麼拿到嗎? //當年老師說大家刪除像這麼玩 dele: function () { var rows = $("#datalist").datagrid("getSelections"); if (rows.length <= 0) { $.messager.alert("提示", "沒有選中的行", "info"); return; } //將選擇到的行存入數組並用,分隔轉換成字符串, var ids = []; for (var i = 0; i < rows.length; i++) { ids.push(rows[i].ID); } var idsStr = ids.join(","); //使用jquery和 服務端進行交互 ajax $.ajax({ url: '../../ashx/DepartmentHandler.ashx', dataType: "text", data: { ids: idsStr,action:"delete" }, type: "POST", beforeSend: function () { // 禁用按鈕防止重複提交 $.messager.progress({ title: "執行中", text: "" }); }, success: function (data) { $("#datalist").datagrid("load", { action: "search" }); $.messager.alert("成功",data,"info"); }, complete: function () { $.messager.progress("close"); }, error: function () { $.messager.alert("警告", "對不起,系統出現錯誤,請聯繫管理員!"); } }); }
當easyUI表單提交時,拿的對錶單的驗證你還記得嗎?app
Save: function () { var parentId = $("#dptComTree").combotree("getValue"); var bool = $("#fm").form("validate"); if (bool) { var data; if (obJdpt.opType == "1") { data = { name: $("#dptdialog input[name='name']").val(), action: "add", pid: parentId }; } else { data = { id: $("#dptdialog input[name='id']").val(), name: $("#dptdialog input[name='name']").val(), action: "update", pid: parentId }; } $.ajax({ url: '../../ashx/DepartmentHandler.ashx', dataType: "json", data: data, type: "POST", beforeSend: function () { // 禁用按鈕防止重複提交 $.messager.progress({ title: "執行中", text: "" }); }, success: function (data) { //if (obJdpt.state == "1") { // $("#dptdialog input[name='name']").val(data.data.name); // $("#dptComTree").combotree("setValue", [{ id: data.data.pid, text: data.data.pname }]); // $("#dptdialog input[name='id']").val(data.data.id); //} $("#datalist").datagrid("load", { action: "search" }); $("dpttree").tree("reload"); $.messager.alert("成功", data.msg, "info"); }, complete: function () { $.messager.progress("close"); $("#dptdialog").dialog("close"); //清掉表單的值 $("#fm").form("reset"); }, error: function () { $.messager.alert("警告", "對不起,系統出現錯誤,請聯繫管理員!"); } }); } }
這裏我想說,在每次添加完數據,要清空數據,這個是否是說了千千萬萬了asp.net
complete: function () { $.messager.progress("close"); $("#dptdialog").dialog("close"); //清掉表單的值 $("#fm").form("reset"); }
你還記得大家老大叫你作表單驗證嗎?post
<div id="dptdialog"> <form id="fm" method="post">
/*還記得表單裏那些low掉牙的隱藏域嗎?**/ <input name="id" type="hidden" /> <div class="dialog-table"> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tk_table"> <tr> <td>上級部門</td> <td class="white-tr"> <input id="dptComTree" type="text" /> </td> </tr> <tr> <td>名稱</td> <td class="white-tr"> <input name="name" id="txtDptName" type="text" class="easyui-validatebox" data-options="required:true" /> </td> </tr> </table> </div> </form> </div>
你還記得那個樹形圖嗎,還記得那個加載樹嗎?
$("#dptComTree").combotree("setValue", [{ id: obJdpt.pid, text: obJdpt.ptext }]); var parentId = $("#dptComTree").combotree("getValue"); $("#txtDptName").focus();
好了,這是回憶第一篇章,主要是一些webform配合easyUI的一些小的知識點,接下的文章會涉及到的知識有:asp.net MVC 配合easyUI項目的坑,有BootStrap+HTML+ajax+jq的輕型項目的總結還有關於:菜蟲網電商項目時,遇到的一些坑,好比說發郵件時,郵箱服務器的坑,這個也就是當時開發忘記密碼遇到的,還有網頁記錄回傳的坑,這些內容下面的文章都會回憶 到!