欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jqgrid 簡(jiǎn)單學(xué)習(xí)筆記

 更新時(shí)間:2011年05月03日 22:44:53   作者:  
JqGrid是JQuery的表格插件,功能非常強(qiáng)大,基本上能想到,它都能實(shí)現(xiàn)。下面是一個(gè)例子,希望能通過(guò)這個(gè)示例,能讓你了解下JqGrid。

JqGrid文檔:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs

JqGrid Demo:http://trirand.com/blog/jqgrid/jqgrid.html#t107

JqGrid的基礎(chǔ),我這里就不做介紹了,不知道的可以去看看博客園或Google,最好去看文檔。先看效果圖:

clip_image002

本Demo可以查詢(xún)、修改、分組。新增、刪除等一些基本功能都可以去JqGrid Demo中找到。

邏輯思路:第一次加載本年度的經(jīng)營(yíng)計(jì)劃數(shù)據(jù),加載完成后,將JqGrid設(shè)置成本地?cái)?shù)據(jù),這樣分頁(yè)、數(shù)據(jù)查詢(xún)都成customs。只能修改本月以后的計(jì)劃,在afterShowForm和afterclickPgButtons做驗(yàn)證,如果時(shí)間小于等于本月,這將提交按鈕設(shè)置成disabled。否則提交按鈕可以使用。在提交服務(wù)器前,需要將JqGrid的datatype設(shè)置成json,否則不會(huì)請(qǐng)求服務(wù)器。

本Demo只做了2010、2011、2012年三個(gè)靜態(tài)數(shù)據(jù)源,修改數(shù)據(jù)只做了返回信息,并沒(méi)修改數(shù)據(jù)源數(shù)據(jù)。

Apsx頁(yè)面代碼:
<table id="jqgridlist">
</table>
<div id="pager">
</div>
Javascript中JqGrid的配置代碼:

復(fù)制代碼 代碼如下:

jQuery("#jqgridlist").jqGrid({ url: 'DataHandler.ashx',
datatype: function (pdata) {
$.ajax({ url: 'DataHandler.ashx',
dataType: "json", type: "post",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: pdata,
error: function (data, status, statusText) {
if (!(status == 200 && statusText == "parsererror"))
alert("客服端解析數(shù)據(jù)錯(cuò)誤!\n請(qǐng)與管理員聯(lián)系");
else
alert"請(qǐng)求服務(wù)器錯(cuò)誤!\n請(qǐng)稍后再試或與管理員聯(lián)系");
},
complete: function (jsondata, stat) {
if (stat == "success") {
var thegrid = jQuery("#jqgridlist")[0],
data = eval("(" + jsondata.responseText + ")");
thegrid.addJSONData(data);
data = null;
jsondata = null;
}
}
});
},
colNames: ["行號(hào)", "日期期間", "c_code", "單位名稱(chēng)", "銷(xiāo)售回款", "營(yíng)業(yè)收入", "工業(yè)總產(chǎn)值", "利潤(rùn)總額", "上交稅金"],
colModel: [{ name: "ROWNUM", index: "ROWNUM", editable: false, summaryType: 'count',
summaryTpl: '({0}) total'
},
{ name: "JHQJ", index: "JHQJ", editable: true, stype: 'text', search: true, searchoptions: { sopt: ['eq'] },
editoptions: { style: "border:0; background-color:transparent;" }
},
{ name: "C_CODE", index: "C_CODE", sortable: false, editable: true, search: false, hidden: true,
editrules: { edithidden: false }, editoptions: { style: "border:0; background-color:transparent;" }
},
{ name: "DWJC", index: "DWJC", editable: true, search: true, stype: 'text', searchoptions: { sopt: ['cn'] },
editoptions: { style: "border:0; background-color:transparent;" }
},
{ name: "a21", index: "a21", editable: true, search: true, editrules: { number: true },
formatter: 'currency', summaryType: 'sum'
},
{ name: "a22", index: "a22", editable: true, search: true, editrules: { number: true },
formatter: 'currency', summaryType: 'sum'
},
{ name: "a23", index: "a23", editable: true, search: true, editrules: { number: true },
formatter: 'currency', summaryType: 'sum'
},
{ name: "a24", index: "a24", editable: true, search: true, editrules: { number: true },
formatter: 'currency', summaryType: 'sum'
},
{ name: "a25", index: "a25", editable: true, search: true, editrules: { number: true },
formatter: 'currency', summaryType: 'sum'
}
],
height: 400,
autowidth: true,
width: 700,
rowNum: 70,
rowTotal: 1300,
rowList: [13, 70, 100],
rownumbers: false,
loadonce: true,
loadtext: '載入中...',
forceFit: true,
gridview: true,
pager: '#pager',
sortname: 'ROWNUM',
scroll: 0,
page: 1,
viewrecords: true,
editurl: 'DataHandler.ashx',
sortorder: "asc",
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false
},
grouping: false,
groupingView: {
groupField: ['DWJC'],
groupColumnShow: [true],
groupText: ['<b>{0}</b>'],
groupCollapse: false,
groupOrder: ['asc'],
groupSummary: [false],
groupDataSorted: true
},
gridComplete: function () {
$("#jqgridlist").setGridParam({ datatype: 'local' });
},
caption: "<table><tr><td>分組:<select id='chngroup'> <option value='clear'>清除分組</option> <option value='DWJC'>單位名稱(chēng)</option><option value='JHQJ'>日期期間</option></select></td><td><div class='slider'><div class='slider_context'><ul></ul></div><div class='btn_pre'>&nbsp;</div><div class='btn_next'> &nbsp;</div></div></div></td></tr></table>"
});

對(duì)一些屬性做一個(gè)解釋?zhuān)?
datatype:如果設(shè)置成json ,那么請(qǐng)求的數(shù)據(jù)是json格式。而且每次增刪查改操作,都會(huì)請(qǐng)求服務(wù)器。
如果設(shè)置成local ,那么所有操作都將在是客服端完成,不發(fā)送到服務(wù)器。
如果設(shè)置成函數(shù)(見(jiàn)本示例),每次獲取數(shù)據(jù),都會(huì)經(jīng)過(guò)本函數(shù)處理一次。
可以通過(guò)調(diào)試JS代碼,來(lái)驗(yàn)證。
rownumbers: 設(shè)置成false,就不顯示行號(hào);否則反之
loadonce: 設(shè)置成true,表示一次性導(dǎo)入數(shù)據(jù);默認(rèn)為false
rowTotal: 表色一次性導(dǎo)入數(shù)據(jù)的最大行數(shù)。
jsonReader:配置與服務(wù)器端返回的數(shù)據(jù)做相關(guān)對(duì)應(yīng),詳細(xì)情況見(jiàn)文檔:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data
gridComplete:全部數(shù)據(jù)加載完成并且其他所有處理事件完成時(shí)觸發(fā)。英文文檔解釋?zhuān)篢his fires after all the data is loaded into the grid and all other processes are complete. Also the event fires independent from the datatype parameter and after sorting paging and etc.如果你只是數(shù)據(jù)加載完成時(shí)就需要觸發(fā)某個(gè)函數(shù),可以采用loadComplete事件。
loadComplete:This event is executed immediately after every server request. data Data from the response depending on datatype grid parameter
caption:字符串類(lèi)型。表格的標(biāo)題。但這里可以寫(xiě)一些html代碼,這是一個(gè)小技巧。
grouping :默認(rèn)false 不分組,反之亦然。
groupingView:關(guān)于分組:請(qǐng)參考JqGrid Demo,里面有詳細(xì)介紹。
editurl:編輯數(shù)據(jù)發(fā)送Url
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
jQuery("#jqgridlist").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false }, {}, {}, {}, { multipleSearch: true, closeAfterSearch: true, closeOnEscape: true })
.navButtonAdd("#pager", {
caption: "",
buttonicon: "ui-icon-pencil",
onClickButton: function () {
var gr = jQuery("#jqgridlist").jqGrid("getGridParam", "selrow");
if (gr != null)
jQuery("#jqgridlist").jqGrid("editGridRow", gr, {
afterclickPgButtons: function (whichbutton, formid, rowid) {
var ret = jQuery("#jqgridlist").jqGrid('getRowData', rowid),
objYear = ret.JHQJ;
if (!ValidateDate(objYear)) jQuery("#sData").attr('disabled', 'disabled');
else
jQuery("#sData").removeAttr('disabled');
},
afterShowForm: function (formid) {
var jqgrid = jQuery("#jqgridlist");
var rowid = jqgrid.jqGrid("getGridParam", "selrow"),
ret = jqgrid.jqGrid('getRowData', rowid);
if (!ValidateDate(ret.JHQJ)) jQuery("#sData").attr('disabled', 'disabled');
else
jQuery("#sData").removeAttr('disabled');
},
beforeSubmit: function (postdata, formid) {
var reg = "^(([1-9]\\d*)|0)(\\.\\d{1,2})?$";
if (!Regex(reg, postdata.a21))
return [false, "銷(xiāo)售回款 格式錯(cuò)誤"];
if (!Regex(reg, postdata.a22))
return [false, "營(yíng)業(yè)收入 格式錯(cuò)誤"];
if (!Regex(reg, postdata.a23))
return [false, "工業(yè)總產(chǎn)值 格式錯(cuò)誤"];
if (!Regex(reg, postdata.a24))
return [false, "利潤(rùn)總額 格式錯(cuò)誤"];
if (!Regex(reg, postdata.a25))
return [false, "上交稅金 格式錯(cuò)誤"];
else
return [true, ""];
},
afterSubmit: function (response, postdata) {
var json = response.responseText; //format is {status:"success/error",msg:""}
var result = eval("(" + json + ")"), successs = false;
if ("success" == result.status) {
successs = true;
$("#FormError td").html(result.msg);
$("#FormError").show();
}
return [successs, result.msg, ""];
}
});
else
alert("請(qǐng)選擇行");
},
position: "first",
title: "修改",
cursor: "pointer"
}).filterToolbar({ stringResult: true, autosearch: true, searchOnEnter: false, groupOp: "AND" });
function Regex(reg, val) {
var patt = new RegExp(reg, "g");
return patt.test(val);
}
function ValidateDate(objYear) {
var year = null,
month = null,
currentYear = null,
date = new Date();
if (objYear.length == 4) {
year = parseInt(objYear.substr(0, 4));
currentYear = parseInt(date.getFullYear());
} else {
year = parseInt(objYear.substr(0, 6))
month = (date.getMonth() + 1).toString();
month = month.length == 1 ? "0" + month : month;
currentYear = parseInt(date.getFullYear() + month);
}
if (year <= currentYear)
return false; //不?可¨¦以°?編À¨¤輯-
else
return true; //可¨¦以°?編À¨¤輯-
}
});
////////////////////////////////////////////////////////////////////////////////////////////////////
動(dòng)態(tài)改變分組
jQuery("#chngroup").live("change", function () {
var vl = $(this).val(); if (vl) {
if (vl == "clear") {
jQuery("#jqgridlist").jqGrid('groupingRemove', true);
} else {
jQuery("#jqgridlist").jqGrid('groupingGroupBy', vl);
}
}
});
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Slider 控制代碼
function CreateYearList() {
var currentYear = parseInt(new Date().getFullYear());
var mulitYear = currentYear - 1990;
var objul = $(".slider_context ul");
if (mulitYear >= 0) {
for (var index = -1, len = mulitYear; index <= len; index++) {
if (currentYear - index == currentYear)
objul.append("<li class='selected'>" + currentYear.toString() + "</li>");
else
objul.append("<li>" + (currentYear - index).toString() + "</li>");
}
} else {
objul.append("<li class='selected'>" + currentYear.toString() + "</li>");
}
}
$(function () {
CreateYearList();
$(".slider").silder({
speed: "normal",
slideBy: 2
});
});
$(".slider_context li").live("click", function () {
$.each($(".slider_context li"), function (id, item) {
$(this).removeClass('selected');
});
$(this).addClass('selected');
var yearVal = $(this).html();
var jqgrid = $("#jqgridlist");
jqgrid.setGridParam({ datatype: 'json' });
jqgrid.jqGrid('appendPostData', { year: yearVal, f: "year" });
jqgrid.trigger("reloadGrid");
jqgrid.jqGrid('removePostDataItem', "f");
});
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var jqgrid = $("#jqgridlist");
//即本次修改前 先將datatype修改成json,否則不能回發(fā)到服務(wù)器
jqgrid.setGridParam({ datatype: 'json' });
jqgrid.jqGrid('appendPostData', { year: yearVal, f: "year" });//添加PostData
jqgrid.trigger("reloadGrid");//重新加載JqGrid
jqgrid.jqGrid('removePostDataItem', "f");//刪除PostData
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
gridComplete: function () {
$("#jqgridlist").setGridParam({ datatype: 'local' });
},
每次加載完成 就將jqgrid設(shè)置成本地?cái)?shù)據(jù)。
Demo下載地址 /201105/yuanma/JqGridDemo.rar

相關(guān)文章

  • 玩轉(zhuǎn)jQuery按鈕 請(qǐng)告訴我你最喜歡哪些?

    玩轉(zhuǎn)jQuery按鈕 請(qǐng)告訴我你最喜歡哪些?

    在Web的世界里,按鈕對(duì)于我們來(lái)說(shuō)再也普通不過(guò)了,當(dāng)然也用得比較多。今天這篇文章我主要向大家分享20個(gè)基于jQuery和CSS技術(shù)的按鈕,這些基于jQuery的按鈕都非同凡響,所以我在標(biāo)題里用了“令人驚嘆”這一個(gè)詞
    2012-01-01
  • jquery獲取url參數(shù)及url加參數(shù)的方法

    jquery獲取url參數(shù)及url加參數(shù)的方法

    本文給大家介紹jquery獲取url參數(shù)及url參數(shù)的方法,在url中加參數(shù)的方法本文通過(guò)多種方式給大家介紹jquery獲取url參數(shù),感興趣的朋友一起學(xué)習(xí)學(xué)習(xí)吧
    2015-10-10
  • 使用jquery實(shí)現(xiàn)圖文切換效果另加特效

    使用jquery實(shí)現(xiàn)圖文切換效果另加特效

    白天活干完,弄個(gè)jquery仿凡客誠(chéng)品圖片切換的效果;以前寫(xiě)的不是很好,今天重新做個(gè)jquery特效,其實(shí)很簡(jiǎn)單,感興趣的朋友可以了解下哦,希望本文對(duì)你有幫助
    2013-01-01
  • jQuery側(cè)邊欄隨窗口滾動(dòng)實(shí)現(xiàn)方法

    jQuery側(cè)邊欄隨窗口滾動(dòng)實(shí)現(xiàn)方法

    jQuery側(cè)邊欄隨窗口滾動(dòng)實(shí)現(xiàn)方法,需要的朋友可以參考一下
    2013-03-03
  • jQuery實(shí)現(xiàn)的點(diǎn)擊圖片居中放大縮小功能示例

    jQuery實(shí)現(xiàn)的點(diǎn)擊圖片居中放大縮小功能示例

    這篇文章主要介紹了jQuery實(shí)現(xiàn)的點(diǎn)擊圖片居中放大縮小功能,涉及jQuery基于事件響應(yīng)針對(duì)頁(yè)面元素動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-01-01
  • 詳解jQuery中的easyui

    詳解jQuery中的easyui

    jQuery EasyUI是一組基于jQuery的UI插件集合體,而jQuery EasyUI的目標(biāo)就是幫助web開(kāi)發(fā)者更輕松的打造出功能豐富并且美觀的UI界面。這篇文章主要介紹了jQuery中的easyui ,需要的朋友可以參考下
    2018-09-09
  • jQuery UI的Dialog無(wú)法提交問(wèn)題的解決方法

    jQuery UI的Dialog無(wú)法提交問(wèn)題的解決方法

    最近在使用jQuery UI的Dialog控件時(shí)發(fā)現(xiàn)如果在此控件放置表單,則所有表單均無(wú)法正常提交
    2011-01-01
  • jquery 插件學(xué)習(xí)(二)

    jquery 插件學(xué)習(xí)(二)

    除了全局函數(shù)外,jquery中的大多數(shù)插件都是通過(guò)jquery對(duì)象的方法提供的
    2012-08-08
  • 原創(chuàng)jQuery彈出層插件分享

    原創(chuàng)jQuery彈出層插件分享

    我們?cè)谇岸碎_(kāi)發(fā),經(jīng)常要用到彈出層的效果,以前很早前就想將這個(gè)功能整理成一個(gè)公共的接口來(lái)實(shí)現(xiàn)了;自寫(xiě)的第一個(gè)jQuery插件,這里分享給大家,有需要的小伙伴參考下。
    2015-04-04
  • 為jQuery.Treeview添加右鍵菜單的實(shí)現(xiàn)代碼

    為jQuery.Treeview添加右鍵菜單的實(shí)現(xiàn)代碼

    jquery.treeview 數(shù)據(jù)通過(guò)JSON數(shù)據(jù)加載,有需要的朋友,可以通jquery的AJAX方法獲取相關(guān)的JSON數(shù)據(jù)。
    2010-10-10

最新評(píng)論