javascript
JSON实现桌面可移动的小便签
? 大多數的管理系統都會有個主程序的桌面,而且上面放置了一個常用的快捷方式或便捷的信息,比如郵件,通知,即豐富了系統內容又能夠使用戶在第一時間內瀏覽的信息。
??? 跟XML相比,JSON的優勢在于格式簡潔短小,生成后的數據大小改變不大,且易于處理。特別是在處理大量復雜數據的時候,這個優勢便顯得非常突出。從各瀏覽器的支持來看,XML需要DOM來解析,而不同瀏覽器廠商的支持的XMLDOM又有所不同,這給WEB開發者或多或少帶來不少困難,特別是在AJAX被大家普遍使用來后,不少開發者都不是返回XML,而是返回HTML片斷或是其他格式的系列化串,除非產品僅限使用IE時在必要的時候才會使用XML來傳輸。JSON則沒有這方面的問題,它不需要另外的解釋器,得到了大多數語言和瀏覽器的支持,應用非常廣泛。這些使得JSON在WEB開發中擁有巨大的優勢。Digg,Yahoo等等大型網站便是采用JSON來進行數據傳輸的。<摘自于百科知識>
? 首先建立一個....ashx后綴的文件,ashx 文件用于寫web handler的,這個文件類似于.aspx文件,可以通過它來調用HttpHandler類,從而免去了普通.aspx頁面的控件解析以及頁面處理的過程,我們就建立一個GetOAJournal.ashx 的文件,處理工作簡報信息。一般處理程序包含了ProcessRequest()方法,
IList<FDA.OA.Model.OAInformation> list = bll.GetOAInformationByWhere(strWhere);StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i = 0; i < list.Count; i++)
{
if (i > 0)
sb.Append(",");
string ProcessUrl = string.Format("../OA/OAInformation/OAJournalView.aspx?OAPubId={0}&PvId={1}", list[i].OAPubId, list[i].OAPubTypeId);
sb.AppendFormat("{{\"Title\":\"{1}\",\"CreateDate\":\"{3}\",\"ProcessUrl\":\"{4}\"}}", list[i].OAPubId, StringUtil.PadRight("[" + list[i].OAPubTypeName + "]" + list[i].Title.Replace("'", "“"), 25), list[i].Publisher.Trim(), ParameterFilter.GetDate(list[i].CreateDate, "MM-dd"), ProcessUrl, DateTime.Now.AddDays(-7) > Convert.ToDateTime(list[i].CreateDate) ? "" : "true");
}
sb.Append("]");
context.Response.ContentType = "text/json";
context.Response.Write(sb.ToString()); 寫好了一般處理程序后,我們開始寫JS了,新建立一個desktopBox.js文件,這個文件包含了所有的桌面選項,如果以后加其他的內容,都可以在這里進行拓展, function LoadOAJournalBox(fdaId,pvId,NoticeInformationContainer, NoticeInformationLoadTooltip){
$.getJSON("../OA/Desktop/GetOAJournal.ashx?f="+fdaId+ "&p=" + pvId ,function(json){
// 獲取顯示內容
var ul = document.getElementById(NoticeInformationContainer);
var div = document.getElementById(NoticeInformationLoadTooltip);
if(json.length == 0){
desktopBox.setOAJournal(ul,json);
div.style.display = "none";
}
});
}
desktopBox.setOAJournal = function(ulContainer, json){
var li, a, span,img, em;
for (var i = 0; i < json.length; i++) {
li = document.createElement("li");
//增加鏈接
a = document.createElement("a");
a.className = 'leftpadding';
a.setAttribute("href", json[i].ProcessUrl);
// 添加屬性,通知預覽重新打開窗口
a.setAttribute("target",'_blank');
a.title = json[i].Title + "\n發布時間:" + json[i].CreateDate;
this.setInnerText(a, json[i].Title);
li.appendChild(a);
//增加span
span = document.createElement("span");
span.className = 'rightpadding';
this.setInnerText(span, "(" + json[i].CreateDate + ")");
li.appendChild(span);
ulContainer.appendChild(li);
}
}; 相關的處理程序都寫好以后,開始調用這個方法來展示數據了,由于頁面上可能存在許多的可配置信息框,所有在次展現頁面使用用戶控件,
前臺:
轉載于:https://www.cnblogs.com/gaowenbin/articles/1986458.html
總結
以上是生活随笔為你收集整理的JSON实现桌面可移动的小便签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyXls初级教程
- 下一篇: JavaScript定义类的几种方式