博客里的好多文章都是本人看著比較好,就轉過來的,好少自己親自去寫點什麼,也很少把自己學的一點心得於大家分享,今天特別想聊一下,關於本人做Net開發時的那段回憶! 一、關於知識的回憶 還記得Handlere嗎? 我記得Handler做圖片防盜鏈時,有這麼一個功能! 還記得Module嗎?那時我們做過I ...
博客里的好多文章都是本人看著比較好,就轉過來的,好少自己親自去寫點什麼,也很少把自己學的一點心得於大家分享,今天特別想聊一下,關於本人做Net開發時的那段回憶!
一、關於知識的回憶
還記得Handlere嗎?
我記得Handler做圖片防盜鏈時,有這麼一個功能!
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里哪些東西是你容易忘掉或者入坑的嗎?
//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表單提交時,拿的對錶單的驗證你還記得嗎?
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("警告", "對不起,系統出現錯誤,請聯繫管理員!");
}
});
}
}
這裡我想說,在每次添加完數據,要清空數據,這個是不是說了千千萬萬了
complete: function () {
$.messager.progress("close");
$("#dptdialog").dialog("close");
//清掉表單的值
$("#fm").form("reset");
}
你還記得你們老大叫你做表單驗證嗎?
<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的輕型項目的總結還有關於:菜蟲網電商項目時,遇到的一些坑,比如說發郵件時,郵箱伺服器的坑,這個也就是當時開發忘記密碼遇到的,還有網頁記錄回傳的坑,這些內容下麵的文章都會回憶 到!
本人為了全站之路,現在已經學RN開發許久,喜歡的朋友,請持續關註!