/* Author sjfe_cn * sjfe_cn@sdevnet.com * http://www.sdevnet.com * */ (function ($) { $.fn.ligerRepeater = function (options) { return $.ligerui.run.call(this, "ligerRepeater", arguments); }; $.fn.ligerGetRepeaterManager = function () { return $.ligerui.run.call(this, "ligerGetRepeaterManager", arguments); }; $.ligerDefaults = $.ligerDefaults || {}; $.ligerDefaults.Repeater = { data: null , dataAction: 'server' , dataType: 'server' , root: 'Rows', //数据源字段名 record: 'Total', //数据源记录数字段名 pageParmName: 'page', //页索引参数名,(提交给服务器) pagesizeParmName: 'pagesize', //页记录数参数名,(提交给服务器) sortnameParmName: 'sortname', //页排序列名(提交给服务器) sortorderParmName: 'sortorder' //页排序方向(提交给服务器) , autoFill: true , method: 'post' , async: true , pageSize: 15 , newPage: 1 , showloading: true , loadingmsg: '' , pagerControlID: null , groupColumn: null , hoverCss: 'repeater_over' , altCss: 'repeater_alt' , selectCss: 'repeater_select' , allowSelect: true , allowMuliteSelect: false , onSelectRow: null , onDblClick: null , dblShowForm: true , adddata: false , allowReverseSelect: false , allowPost: false ,isAddTemplate:true }; //扩展方法 $.ligerMethos.Repeater = $.ligerMethos.Repeater || {}; $.ligerui.controls.Repeater = function (element, options) { $.ligerui.controls.Repeater.base.constructor.call(this, element, options); }; $.ligerui.controls.Repeater.ligerExtend($.ligerui.core.UIComponent, { __getType: function() { return 'Repeater'; }, __idPrev: function() { return 'rpt'; }, _extendMethods: function() { return $.ligerMethos.Repeater; }, _init: function() { $.ligerui.controls.Repeater.base._init.call(this); var g = this, p = this.options; g.disabled = $("#" + g.id).attr("disabled"); if (g.disabled == 'disabled' || g.disabled == true || g.disabled == 'true' || g.disabled == 'True') { g.disabled = true; $("#" + g.id).attr("disabled", false); } else { g.disabled = false; } if (p.data) { p.url = null; } else { if (!p.url || p.url == '') { p.url = window.location.href; if (p.url.indexOf('#') >= 0) p.url = p.url.substr(0, p.url.indexOf('#')); var prefix = '?'; if (p.url.indexOf('?') >= 0) { prefix = '&'; } if (p.urlparam) { p.url = p.url + prefix + p.urlparam; } else { p.url = p.url + prefix + 'Action=' + escape(g.id) + 'GetRepeaterData'; } } } if(p.pagerControlID) { p.usePager = true; var opt = window['pageropt_' + p.pagerControlID]; if(!opt) { opt = { }; } opt.callback = function (new_current_page, containers) { p.newPage = parseInt(new_current_page) + 1; g.search({ newpage: p.newPage, addlog: false ,ispagerctl:true,showmsg:p.showloadingdlg}); } p.pagerOpts = opt; //g.pagerControl = $("#" + p.pagerControlID).pagination(1, opt); p.pageSize = opt.items_per_page; //g.pagerControl.getPageSize(); } g.pageSize = p.pageSize; g.selected = {}; g.records = { }; }, addNewRow: function (opts) { var g = this, p = this.options; if (g.disabled) return; if(p.childForm) { var url = p.childForm; var dgopt = opts ? opts : p.dlgopt; if (typeof (dgopt) == 'function') { dgopt = dgopt(p,null); } if (p.childFormCloseRefresh) { dgopt = $.extend({ onclose: function () { g.search(); } }, dgopt || {}); } if (p.childFormTitle) { dgopt = $.extend({ title: p.childFormTitle }, dgopt || {}); } if (p.childFormMaxShow) { dgopt = $.extend({ maxshow: true }, dgopt || {}); } dgopt = $.extend({ ctl: g }, dgopt || {}); var index = url.indexOf('#'); while (index >= 0) { var turl = url.substring(index); var yindex = turl.indexOf('&'); var cid = ''; if (yindex > 0) { cid = turl.substring(0, yindex); } else { cid = turl.substring(0, turl.length); } var cv = $(cid).val(); if (!cv && cv != '0' && cv != 0) cv = ''; url = url.replace(cid, escape(cv)); index = url.indexOf('#'); } DN.showAddDlg(url, dgopt, p); } else { $.ShowMsg(DN.Language.FirstSetChildForm); } } , editRow: function (opts,title) { var g = this, p = this.options; if (g.disabled) return; var t = DN.Language.PageEditTitle; if (title) t = title; var data = g.getSelected(); if (!data) { $.ShowMsg(DN.Language.GridSelectOperateRow.replace('{0}', t)); return; } if (!p.pkfield) { $.ShowMsg(DN.Language.FirstSetPrimaryKey); return; } var pkvalue = data[p.pkfield]; if (!pkvalue || pkvalue == '0' || pkvalue == DN.EmptyGuid) { $.ShowMsg(DN.Language.GridSelectOperateRow.replace('{0}', t)); return; } if (p.childForm) { var url = p.childForm; var dgopt = opts ? opts : p.dlgopt; if (typeof (dgopt) == 'function') { dgopt = dgopt(p,data); } if (p.childFormCloseRefresh) { dgopt = $.extend({ onclose: function () { g.search(); } }, dgopt || {}); } if (p.childFormTitle) { dgopt = $.extend({ title: p.childFormTitle }, dgopt || {}); } if (p.childFormMaxShow) { dgopt = $.extend({ maxshow: true }, dgopt || {}); } dgopt = $.extend({ ctl: g }, dgopt || {}); var index = url.indexOf('#'); while (index >= 0) { var turl = url.substring(index); var yindex = turl.indexOf('&'); var cid = ''; if (yindex > 0) { cid = turl.substring(0, yindex); } else { cid = turl.substring(0, turl.length); } var cv = $(cid).val(); if (!cv) { cv = data[cid.substring(1)]; } if (!cv && cv != '0' && cv != 0) cv = ''; url = url.replace(cid, escape(cv)); index = url.indexOf('#'); } DN.showEditDlg(url, pkvalue, dgopt, p); } else { $.ShowMsg(DN.Language.FirstSetChildForm); } } ,deleteRow:function() { var g = this, p = this.options; if (g.disabled) return; g.operateRows(DN.Language.Delete, 'delete'); } ,operateRows:function(title, op) { var g = this, p = this.options; if (g.disabled) return; var data = g.getSelected(); if (!data) { $.ShowMsg(DN.Language.GridSelectOperateRow.replace('{0}', title)); return; } if (!p.pkfield) { $.ShowMsg(DN.Language.FirstSetPrimaryKey); return; } var pkvalue = data[p.pkfield]; if (!pkvalue || pkvalue == '0' || pkvalue == DN.EmptyGuid) { $.ShowMsg(DN.Language.GridSelectOperateRow.replace('{0}', title)); return; } if (typeof (rpt_operateRow) == 'function') { var ret = rpt_operateRow(g, title, pkvalue, op); if (ret == false) return; } if (p.spName) { $.ShowConfirm(DN.Language.OperatingRowConfirm.replace('{0}', title), function () { $.ShowProcess(DN.Language.Operating.replace('{0}', title)); DN.ajaxOperateRecords(p.spName, pkvalue, op, function (retdata) { DN.onOperCompleted(retdata, g, { ope: op }); } ); }); return; } if(op=='delete') { if (p.tableName) { $.ShowConfirm(DN.Language.OperatingRowConfirm.replace('{0}',DN.Language.Delete), function () { $.ShowProcess(DN.Language.Operating.replace('{0}', DN.Language.Delete)); DN.ajaxDeleteRecords(p.tableName, pkvalue, function(retdata) { DN.onOperCompleted(retdata, g, { ope: 'delete' }); } ); }); return; } $.ShowMsg(DN.Language.GridNotSetSpNameOrTableName); } else { $.ShowMsg(DN.Language.GridNotSetSpNameOrTableName); } } ,_render: function() { var g = this, p = this.options; g.repeater = $(this.element); g.itemTemplate = $("> *[template='item']", g.repeater); g.headTemplate = $("> *[template='head']", g.repeater); g.footTemplate = $("> *[template='foot']", g.repeater); g.alterTemplate = $("> *[template='alter']", g.repeater);//偶数行 g.emptyTemplate = $("> *[template='empty']", g.repeater);//空模版 g.groupTemplate = $("> *[template='group']", g.repeater);//分组模版 g.treeTemplate = $("> *[template='tree']", g.repeater);//多级树模版 g.emptyTemplate.hide(); g.repeater.addClass('l-repeater'); var loading = "
" + p.loadingmsg + "
"; g.repeater.append(loading); g.gridloading = $(".l-repeater-loading:first", g.repeater); if (p.showloading) g.gridloading.show(); else g.gridloading.hide(); if (g.itemTemplate.length > 0) { g.itemTemplate.template = g.itemTemplate[0].innerHTML; g.itemTemplate.empty(); g.itemTemplate.css("width", "100%"); } if (g.headTemplate.length > 0) { g.headTemplate.template = g.headTemplate.html(); g.headTemplate.empty(); g.headTemplate.css("width", "100%"); } if (g.footTemplate.length > 0) { g.footTemplate.template = g.footTemplate.html(); g.footTemplate.empty(); g.footTemplate.css("width", "100%"); } if (g.alterTemplate.length > 0) { g.alterTemplate.template = g.alterTemplate.html(); g.alterTemplate.remove(); } if (g.groupTemplate.length > 0) { g.groupTemplate.template = g.groupTemplate.html(); g.groupTemplate.empty(); } if (g.treeTemplate.length > 0) { g.treeTemplate.tmpTemplate = $('
' + g.treeTemplate.html() + '
'); //$('body').append(g.treeTemplate.tmpTemplate); //g.treeTemplate.tmpTemplate.hide(); g.treeTemplate.template = g.treeTemplate.html(); g.treeTemplate.empty(); } g.set(p); }, _setUrl: function(value) { this.options.url = value; var g = this, p = this.options; if (value) { this.loadData(true); } else { g.currentData = p.data; g.data = p.data; g.newData = p.data; g._showData(); } }, loadData: function(opt) { var g = this, p = this.options; g.loading = true; var clause = null; //参数初始化 if (!p.newPage) p.newPage = 1; if (p.dataAction == "server") { if (!p.sortOrder) p.sortOrder = "asc"; } var param = []; if (p.parms) { if (p.parms.length) { $(p.parms).each(function() { param.push({ name: this.name, value: this.value }); }); } else if (typeof p.parms == "object") { for (var name in p.parms) { param.push({ name: name, value: p.parms[name] }); } } } if (p.attachwhere) { param.push({ name: 'attachwhere', value: p.attachwhere }); } if (p.where) { param.push({ name: 'where', value: p.where }); } if (p.dataAction == "server") { if (p.usePager) { param.push({ name: p.pageParmName, value: p.newPage }); param.push({ name: p.pagesizeParmName, value: p.pageSize }); } if (!p.sortName) { if (p.pkfield) { if (p.pkfield.indexOf('_') == 0) { p.sortName = '[' + p.pkfield + ']'; } else { p.sortName = p.pkfield; } if (!p.sortOrder) { p.sortOrder = 'ASC'; } } } if (p.sortName) { param.push({ name: p.sortnameParmName, value: p.sortName }); param.push({ name: p.sortorderParmName, value: p.sortOrder }); } } ; if (p.autoFill == true || p.autoFill == 1) { g.loadServerData.ligerDefer(g, 20, [param, clause]); } else { g.toggleLoading(false); } g.loading = false; }, loadServerData: function(param, clause) { var g = this, p = this.options; //g.emptyTemplate.hide(); var ajaxOptions = { type: p.method, url: p.url, data: param, async: p.async, dataType: p.retType ? p.retType : 'json', beforeSend: function() { if (g.hasBind('loading')) { g.trigger('loading'); } else { g.toggleLoading(true); } }, success: function (data) { g.toggleLoading.ligerDefer(g, 10, [false]); if (p.retType && p.retType != 'json') { try { data = eval("(" + data + ")"); } catch(e) { if (DN && typeof(DN.ajaxError) == 'function') { var XMLHttpRequest = { }; XMLHttpRequest.responseText = data; var ret = DN.ajaxError(XMLHttpRequest); return; } } } g.trigger('success', [data, g]); g.newData = data; g.curRecordCount = 0; if (!data || !data[p.root] || !data[p.root].length) { if (!p.adddata || g.issearch || !g.currentData) { g.currentData = g.data = { }; g.currentData[p.root] = g.data[p.root] = []; g.currentData[p.record] = g.data[p.record] = 0; g._showData(); $.CloseProcess(); } if (!g.rows || g.rows.length == 0) { g.emptyTemplate.show(); } return; } if (g.issearch || !p.adddata || !g.data ||!g.currentData) { g.data = data; g.currentData = data; } else { g.curRecordCount = g.currentData[p.root].length; for(var i=0;i].*?>/g, ""); } repeaterajaxerror(txt); } } }; if (p.contentType) ajaxOptions.contentType = p.contentType; var formid = window.document.forms[0].id; if (formid) { $("#" + formid).ajaxSubmit(ajaxOptions); } else { $.ajax(ajaxOptions); } } , search: function (searchOpt) { var g = this, p = this.options; if (g.issearch == true) return; g.issearch = true; if (searchOpt && searchOpt.ispagerctl==true) g.issearch = false; if (searchOpt && searchOpt.currentpage == true) { searchOpt.newpage = g.options.newPage; } var formid = window.document.forms[0].id; var ds = $("#" + formid).attr('datasource'); if (!ds) { DN.setFormState('unchanged', g.id); } DN.ajaxSearch(g, searchOpt); g.changedCells = { }; } , reloadData: function (loadopt) { var g = this, p = this.options; this.options.autoFill = true; p.reloaddata = true; if (loadopt) { if (loadopt.filter != undefined) { //g.set('parms', { attachwhere: loadopt.filter }); g.options.attachwhere = loadopt.filter; } else { g.options.attachwhere = null; } if (loadopt.newpage) { if (loadopt.newpage > 0) { g.options.newPage = loadopt.newpage; } } if (loadopt.urlparam) { var urlps = loadopt.urlparam.split('&');//id=1&tid=2 var url = p.url; var params = url.split('?'); var search = ''; if (params.length == 2) { search = params[1]; url = params[0]; } if (search == '') { if(url.indexOf('?')>=0) { p.url = p.url + '&' + loadopt.urlparam; } else { p.url = p.url + '?' + loadopt.urlparam; } } else { var searchparams = search.split('&'); var spfind = false; for (var j = 0; j < urlps.length; j++) { spfind = false; var urlkeys = urlps[j].split('='); if (urlkeys.length == 2) { for (var i = 0; i < searchparams.length; i++) { var sp = searchparams[i].split('='); if (sp.length == 2) { if (sp[0] == urlkeys[0]) { spfind = true; searchparams[i] = urlkeys[0] + '=' + urlkeys[1]; break; } } } if (spfind == false) { searchparams.push(urlkeys[0] + '=' + urlkeys[1]); } } } var query = ''; for (var i = 0; i < searchparams.length; i++) { if (query != '') { query = query + '&'; } query = query + searchparams[i]; } if (query != '') { url = url + '?' + query; } p.url = url; } } } g.loadData(); } , toggleLoading: function (show) { var g = this, p = this.options; if (p.showloading) g.gridloading[show ? 'show' : 'hide'](); } , _showData: function () { var g = this, p = this.options; var data = g.newData; if (!g.curRecordCount) { g.curRecordCount = 0; } if (g.trigger('beforeShowData', [data,g]) == false) return; if (!p.adddata || g.issearch) g._clearRepeater(); g.isDataChanged = false; if (!data) return; if (!p.adddata || g.issearch) { g.recordNumber = 0; g.rowdisplayindex = 0; } g._updateRepeaterData(); g.curRecordCount = g.currentData[p.root].length; g.pageIndex = p.newPage; g.recordCount = g.currentData[p.record]; g.trigger('afterShowData', [data,g]); g.issearch = false; if (p.allowPost) { g.readyPost(); } } ,appendData:function(rows) { var g = this, p = this.options; if (!rows || rows.length == 0) return; if (!g.curRecordCount) { g.curRecordCount = 0; } var adddata = {}; adddata[p.root] = rows; if (g.trigger('beforeShowData', [adddata, g]) == false) return; g.curRecordCount = g.currentData[p.root].length; var rec = g.currentData[p.record]; if (!rec) { rec = 0; } for (var i = 0; i < rows.length; i++) { rows[i]['__status'] = 'add'; g.currentData[p.root].push(rows[i]); } rec = parseInt(rec) + rows.length; g.currentData[p.record] = rec; g.newData = {}; g.newData[p.root] = rows; g._updateRepeaterData(); g.curRecordCount = g.currentData[p.root].length; g.pageIndex = p.newPage; g.recordCount = g.currentData[p.record]; g.trigger('afterShowData', [adddata,g]); if (p.allowPost) { g.readyPost(); } } , _loadChildData: function (parentRow, treelevel, level) { var g = this, p = this.options; if (parentRow && parentRow.children && parentRow.children.length > 0) { for (var i = 0; i < parentRow.children.length; i++) { var tl = $('> *[level=' + (level + 1) + ']', g.treeTemplate.tmpTemplate); /* for (var k = 0; k < g.treeTemplate.tmpTemplate.length; k++) { if ($(g.treeTemplate.tmpTemplate[k]).attr("level") == (level + 1)) { tl = $(g.treeTemplate.tmpTemplate[k]); break; } }*/ if ( tl && tl.length > 0) { var treehtml = tl.html(); var ti = level + '' + i; treehtml = g._getRowHtml(treehtml, parentRow.children[i], i, parseInt(ti)); var htmlobj = $(treehtml); htmlobj.attr('__itemIndex', parseInt(ti)); parentRow.children[i]['__itemIndex'] = parseInt(ti); g._setEvent(htmlobj, parentRow.children[i]); g.records[parseInt(ti)] = parentRow.children[i]; if (!p.isAddTemplate) { g.repeater.append(htmlobj); } else { g.treeTemplate.append(htmlobj); } g._loadChildData(parentRow.children[i], tl, level + 1); } } } } , _updateRepeaterData: function () { var g = this, p = this.options; var tmphtml = g.itemTemplate.template; g.rows = g.currentData[p.root]; var html = ''; var data = g.newData[p.root]; if (!p.isAddTemplate) { if(g.foothtmobj) { g.foothtmobj.remove(); } } if (g.curRecordCount == 0 && g.headTemplate.length > 0) { html = g.headTemplate.template; html = g._getRowHtml(html, {}, -1, -1); if (!p.isAddTemplate) { g.repeater.append(html); g.headTemplate.hide(); } else { g.headTemplate.append(html); g.headTemplate.show(); } } if (data.length == 0 && g.rows.length == 0) { if (!p.isAddTemplate) { g.repeater.append(g.emptyTemplate); } g.emptyTemplate.show(); } else { g.emptyTemplate.hide(); } var althtml = ''; if (g.alterTemplate.length > 0) { althtml = g.alterTemplate.template; } if (p.isTree) { if (p.isAddTemplate) g.treeTemplate.show(); else g.treeTemplate.hide(); for (var j = 0; j < data.length; j++) { var treelevel = $('> *[level=1]', g.treeTemplate.tmpTemplate); /*for(var k=0;k0) { var treehtml = treelevel.html(); treehtml = g._getRowHtml(treehtml, data[j], j, parseInt(j)); var htmlobj = $(treehtml); htmlobj.attr('__itemIndex', parseInt(j)); data[j]['__itemIndex'] = parseInt(j); g._setEvent(htmlobj, data[j]); g.records[parseInt(j)] = data[j]; if (!p.isAddTemplate) { g.repeater.append(htmlobj); } else { g.treeTemplate.append(htmlobj); } g._loadChildData(data[j], treelevel, 1); } } } else if (p.groupColumn) { var groups = []; //分组列名数组 var groupsdata = []; //切成几块后的数据 g.groups = groupsdata; var grpcolsnames = p.groupColumn.split(','); for (var j = 0; j < data.length; j++) { var item = data[j]; var colvals = { }; for (var l = 0; l < grpcolsnames.length; l++) { colvals[grpcolsnames[l]] = item[grpcolsnames[l]]; } var valueIndex = -1; for (var k = 0; k < groups.length; k++) { var find = true; for (var grp in colvals) { if (groups[k][grp] != colvals[grp]) { find = false; } } if (find) { valueIndex = k; break; } } if (valueIndex == -1) { groups.push(colvals); valueIndex = groups.length - 1; groupsdata.push([]); } //item['__displayindex'] = groupsdata[valueIndex].length; groupsdata[valueIndex].push(item); } var grphtml = ''; if (g.groupTemplate.length > 0) { grphtml = g.groupTemplate.template; g.itemTemplate.remove(); } if (grphtml) { if (!p.isAddTemplate) { g.groupTemplate.hide(); } else { g.groupTemplate.show(); } } else { if (!p.isAddTemplate) { g.itemTemplate.hide(); } else { g.itemTemplate.show(); } } var index = 0; for (var m = 0; m < groupsdata.length; m++) { if (grphtml) { html = grphtml; html = g._getRowHtml(html, groupsdata[m][0], m, m); if (!p.isAddTemplate) { g.repeater.append(html); } else { g.groupTemplate.append(html); } for (var n = 0; n < groupsdata[m].length; n++) { if (althtml && n % 2 != 0) { html = althtml; } else { html = tmphtml; } var ti = m + '' + n; html = g._getRowHtml(html, groupsdata[m][n], n, parseInt(ti)); var htmlobj = $(html); if (n % 2 != 0 && p.altCss) htmlobj.addClass(p.altCss); htmlobj.attr('__itemIndex', parseInt(ti)); groupsdata[m][n]['__itemIndex'] = parseInt(ti); g._setEvent(htmlobj, groupsdata[m][n]); g.records[parseInt(ti)] = groupsdata[m][n]; if (!p.isAddTemplate) { g.repeater.append(htmlobj); } else { g.groupTemplate.append(htmlobj); } } } else { for (var n = 0; n < groupsdata[m].length; n++) { if (althtml && n % 2 != 0) { html = althtml; } else { html = tmphtml; } var ti = m + '' + n; html = g._getRowHtml(html, groupsdata[m][n], index, parseInt(ti)); var htmlobj = $(html); if (n % 2 != 0 && p.altCss) htmlobj.addClass(p.altCss); htmlobj.attr('__itemIndex', parseInt(ti)); groupsdata[m][n]['__itemIndex'] = parseInt(ti); g._setEvent(htmlobj, groupsdata[m][n]); g.records[parseInt(ti)] = groupsdata[m][n]; if (!p.isAddTemplate) { g.repeater.append(htmlobj); } else { g.itemTemplate.append(htmlobj); } index++; } } } } else { if (!p.isAddTemplate) { g.itemTemplate.hide(); } else { g.itemTemplate.show(); } for (var i = 0; i < data.length; i++) { var rindex = g.curRecordCount + i; if (althtml && i % 2 != 0) { html = althtml; } else { html = tmphtml; } html = g._getRowHtml(html, data[i], rindex, parseInt(rindex)); var htmlobj = $(html); if (i % 2 != 0 && p.altCss) htmlobj.addClass(p.altCss); htmlobj.attr('__itemIndex', parseInt(rindex)); data[i]['__itemIndex'] = parseInt(rindex); g._setEvent(htmlobj, data[i]); g.records[parseInt(rindex)] = data[i]; if (!p.isAddTemplate) { g.repeater.append(htmlobj); } else { g.itemTemplate.append(htmlobj); } } } if (g.curRecordCount == 0 && g.footTemplate.length > 0) { html = g.footTemplate.template; html = g._getRowHtml(html, {}, 999999, 999999); g.foothtmobj = $(html); g.foothtm = html; if (!p.isAddTemplate) { g.repeater.append(g.foothtmobj); g.footTemplate.hide(); } else { g.footTemplate.append(g.foothtmobj); g.footTemplate.show(); } } else { if (!p.isAddTemplate) { if (g.foothtm) { if (!g.foothtmobj) g.foothtmobj = $(g.foothtm); g.repeater.append(g.foothtmobj); } } } if (p.pagerControlID) { var total = g.currentData[p.record]; if (!total) total = g.rows.length; if (!g.pagerControl) { g.pagerControl = $("#" + p.pagerControlID).pagination(parseInt(total), p.pagerOpts); } else { g.pagerControl.setRecordCount(parseInt(total),p.newPage); } } } ,hasNextPage:function() { var g = this, p = this.options; if (!p.adddata) { return g.pageIndex * p.pageSize < g.recordCount; } return g.curRecordCount < g.currentData[p.record]; } ,getPageCount:function() { var g = this, p = this.options; return Math.ceil(g.currentData[p.record] / p.pageSize); } ,getSelected:function() { var g = this; if(g.selected) { for(var item in g.selected) { return g.selected[item]; } } return null; } ,getSelecteds:function() { var g = this; if (g.selected) { var ret = []; for (var item in g.selected) { ret.push(g.selected[item]); } if (ret.length > 0) return ret; } return null; } ,getRow:function(pkvalue) { var g = this, p = this.options; if(!p.pkfield) { $.ShowMsg(DN.Language.FirstSetPrimaryKey); return null; } if (!g.rows) return null; for (var i = 0; i < g.rows.length; i++) { if(g.rows[i][p.pkfield]==pkvalue) { return g.rows[i]; } } return null; } , _setEvent: function (htmlobj) { var g = this, p = this.options; if (p.allowSelect) { htmlobj.bind('click.repeater', function () { var curindex = $(this).attr('__itemIndex'); var isSelect = false; var curRow = null; if (!p.allowMuliteSelect) { var y = -1; for (var x in g.selected) { var tagobj = $('[__itemIndex=' + x + ']', g.repeater); tagobj.removeClass(p.selectCss); var chk = $('input[rptchk="1"]', tagobj); if (chk.length > 0) { chk.attr('checked', false); } if (x == curindex) { y = x; curRow = g.selected[x]; } } g.selected = {}; if (y == -1 || !p.allowReverseSelect) { $(this).addClass(p.selectCss); var chk1 = $('input[rptchk="1"]', $(this)); if (chk1.length > 0) { chk1.attr('checked', true); } g.selected[curindex] = g.records[curindex]; isSelect = true; curRow = g.records[curindex]; } } else { var y = -1; for (var x in g.selected) { if (x == curindex) { var tagobj = $('[__itemIndex=' + x+']', g.repeater); tagobj.removeClass(p.selectCss); var chk = $('input[rptchk="1"]', tagobj); if (chk.length > 0) { chk.attr('checked', false); } y = x; curRow = g.selected[x]; break; } } if (y == -1) { $(this).addClass(p.selectCss); var chk1 = $('input[rptchk="1"]', $(this)); if (chk1.length > 0) { chk1.attr('checked', true); } g.selected[curindex] = g.records[curindex]; curRow = g.records[curindex]; isSelect = true; } else { delete g.selected[y]; } } if (p.onSelectRow) { p.onSelectRow(curRow,isSelect ,g.rows); } }); } if (p.onDblClick || p.dblShowForm) { htmlobj.bind('dblclick.repeater' , function () { var curindex = $(this).attr('__itemIndex'); var data = g.records[curindex]; if (p.onDblClick) { var ret = p.onDblClick(data, g.rows); if (ret == false) return; } if(p.dblShowForm) { if (!p.pkfield) { //$.ShowMsg("请设置数据主键字段名称"); return; } var pkvalue = data[p.pkfield]; if (!pkvalue || pkvalue == '0' || pkvalue == DN.EmptyGuid) { //$.ShowMsg('请先选择行'); return; } if (p.childForm) { var url = p.childForm; var dgopt = p.dlgopt; if (typeof (dgopt) == 'function') { dgopt = dgopt(p, data); } if (p.childFormCloseRefresh) { dgopt = $.extend({ onclose: function () { g.search(); } }, dgopt || {}); } if (p.childFormTitle) { dgopt = $.extend({ title: p.childFormTitle }, dgopt || {}); } if (p.childFormMaxShow) { dgopt = $.extend({ maxshow: true }, dgopt || {}); } dgopt = $.extend({ ctl: g }, dgopt || {}); var index = url.indexOf('#'); while (index >= 0) { var turl = url.substring(index); var yindex = turl.indexOf('&'); var cid = ''; if (yindex > 0) { cid = turl.substring(0, yindex); } else { cid = turl.substring(0, turl.length); } var cv = $(cid).val(); if (!cv) { cv = data[cid.substring(1)]; } if (!cv && cv != '0' && cv != 0) cv = ''; url = url.replace(cid, escape(cv)); index = url.indexOf('#'); } DN.showEditDlg(url, pkvalue, dgopt, p); } else { //$.ShowMsg('请先设置子页面路径'); } } }); } if (p.hoverCss) { htmlobj.bind('mouseover.rptitem', function () { $(this).addClass(p.hoverCss); }).bind('mouseout.rptitem', function () { $(this).removeClass(p.hoverCss); }); } }, getRowObj:function(rowdata) { var g = this; var itemindex = rowdata['__itemIndex']; return $('[__itemIndex=' + itemindex + ']', g.repeater); } , getRowByIndex: function (rowindex) { var g = this, p = this.options; if (!g.rows) return null; var ti = parseInt(rowindex); if (isNaN(ti)) ti = 0; if (ti < 0) ti = 0; for (var i = 0; i < g.rows.length; i++) { if (g.rows[i]['__itemIndex'] == ti) { return g.rows[i]; } } return null; }, addRow:function(row) { var g = this; var rows = []; rows.push(row); g.appendData(rows); }, //数据库删除在外面自行处理 removeRow:function(rowindex) { var g = this, p = this.options; var isObj = typeof (rowindex) == "object"; if(isObj) { rowindex = rowindex['__itemIndex']; } var ti = parseInt(rowindex); if (isNaN(ti)) ti = 0; if (ti < 0) ti = 0; var rowobj = $('[__itemIndex=' + ti + ']', g.repeater); if (rowobj) { $(rowobj).remove(); g.records[ti]['__status'] = 'delete'; for (var i = 0; i < g.rows.length; i++) { if (g.rows[i]['__itemIndex'] == ti) { g.rows[i]['__status'] = 'delete'; break; } } if (p.allowPost) { g.readyPost(); } } } ,updateRow:function(rowindex,row) { var g = this, p = this.options; var ti = parseInt(rowindex); if (isNaN(ti)) ti = 0; if (ti < 0) ti = 0; var rowobj = $('[__itemIndex=' + ti + ']', g.repeater); if (rowobj) { g.records[ti] = row; g.records[ti]['__status'] = 'update'; for (var j = 0; j < g.rows.length; j++) { if (g.rows[j]['__itemIndex'] == ti) { g.rows[j] = row; g.rows[j]['__status'] = 'update'; break; } } var adddata = {}; adddata[p.root] = []; adddata[p.root].push(row); if (g.trigger('beforeShowData', [adddata, g]) == false) return; var althtml = ''; if (g.alterTemplate.length > 0) { althtml = g.alterTemplate.template; } var tmphtml = g.itemTemplate.template; var html = ''; if (althtml && ti % 2 != 0) { html = althtml; } else { html = tmphtml; } html = g._getRowHtml(html, g.records[ti], ti, parseInt(ti)); var htmlobj = $(html); if (ti % 2 != 0 && p.altCss) htmlobj.addClass(p.altCss); htmlobj.attr('__itemIndex', parseInt(ti)); g.records[ti]['__itemIndex'] = parseInt(ti); g._setEvent(htmlobj, g.records[ti]); rowobj.after(htmlobj); rowobj.remove(); g.trigger('afterShowData', [adddata, g]); if (p.allowPost) { g.readyPost(); } } } ,updateField:function(field,value,rowindex) { var g = this, p = this.options; var row = g.getRowByIndex(rowindex); if (row) { row[field] = value; row['__status'] = 'update'; g.records[rowindex]['__status'] = 'update'; if (p.allowPost) { g.readyPost(); } } } ,readyPost:function() { var g = this, p = this.options; var changedData = g.getChangedData(); if (changedData == '' || changedData.length == 0) { $("#" + g.id + "_Input").val(""); } else { $("#" + g.id + "_Input").val(JSON2.stringify(changedData)); } } , getChangedData: function () { var g = this, p = this.options; var ret = []; for (var rowid in g.records) { if (!p.postAll) { if (g.records[rowid]['__status'] == 'add' || g.records[rowid]['__status'] == 'update') { ret.push(g.records[rowid]); } } else { if (g.records[rowid]['__status'] != 'delete') { ret.push(g.records[rowid]); } } } return ret; } , _getRowHtml: function (tmphtml, rowdata, i, rowindex) { if (rowdata['_level']) { var thtml = $('[level=' + rowdata['_level'] + ']', '
' + tmphtml + '
'); if (thtml) { thtml = thtml.html(); if (thtml && thtml != '') { tmphtml = thtml; } } } if (!tmphtml) return ""; var g = this, p = this.options; var str = '//#itemindex#//g'; str = str.replace(/\/\//g, "\/"); tmphtml = tmphtml.replace(eval(str), i + 1); for (var f in rowdata) { str = '//#' + f + '#//g'; str = str.replace(/\/\//g, "\/"); var val = rowdata[f]; if (val) { if (val.toString().indexOf("/Date(") >= 0) { val = DN.getDateFormat(val, "yyyy-MM-dd HH:mm:ss"); } } if (typeof (p.render) == 'function') { val = p.render(f, val, rowdata,rowindex); } if (val == null||typeof(val)=='undefined') val = ''; tmphtml = tmphtml.replace(eval(str), val.toString()); } return tmphtml; } , _clearRepeater: function () { var g = this, p = this.options; //清空数据 g.itemTemplate.empty(); g.headTemplate.empty(); g.footTemplate.empty(); g.alterTemplate.empty(); g.groupTemplate.empty(); g.treeTemplate.empty(); if (!p.isAddTemplate) { g.repeater.children(':not(.l-repeater-loading)').remove(); } g.recordNumber = 0; g.rowdisplayindex = 0; g.records = {}; g.rows = []; //清空选择的行 g.selected = {}; g.totalNumber = 0; //编辑器计算器 g.editorcounter = 0; } }); })(jQuery);
淫妻作乐链接5g天天爽永久入口维语jalapsikix免费聊天萝幼天地怎么看链接链接链接