1、Yii2 DynaGrid插件生成的列表可以手動(dòng)拖動(dòng)每一列的寬度,但是拖動(dòng)之后怎么保存?使刷新頁面后還是剛才拖動(dòng)停止的寬度。
主要代碼如下:(由rc-table-resizing與rc-column-resizing這兩class控制)
注釋:以下是源碼,不能改動(dòng),要重寫。
ResizableColumns.prototype.pointerdown = function(e) { var $currentGrip, $leftColumn, $ownerDocument, $rightColumn, newWidths, startPosition, widths; e.preventDefault(); $ownerDocument = $(e.currentTarget.ownerDocument); startPosition = pointerX(e); $currentGrip = $(e.currentTarget); $leftColumn = $currentGrip.data('th'); $rightColumn = this.$tableHeaders.eq(this.$tableHeaders.index($leftColumn) + 1); widths = { left: parseWidth($leftColumn[0]), right: parseWidth($rightColumn[0]) }; newWidths = { left: widths.left, right: widths.right }; this.$handleContainer.add(this.$table).addClass('rc-table-resizing'); $leftColumn.add($rightColumn).add($currentGrip).addClass('rc-column-resizing'); this.triggerEvent('column:resize:start', [$leftColumn, $rightColumn, newWidths.left, newWidths.right], e); $ownerDocument.on('mousemove.rc touchmove.rc', (function(_this) { return function(e) { var difference; difference = (pointerX(e) - startPosition) / _this.$table.width() * 100; setWidth($leftColumn[0], newWidths.left = _this.constrainWidth(widths.left + difference)); setWidth($rightColumn[0], newWidths.right = _this.constrainWidth(widths.right - difference)); if (_this.options.syncHandlers != null) { _this.syncHandleWidths(); } return _this.triggerEvent('column:resize', [$leftColumn, $rightColumn, newWidths.left, newWidths.right], e); }; })(this)); return $ownerDocument.one('mouseup touchend', (function(_this) { return function() { $ownerDocument.off('mousemove.rc touchmove.rc'); _this.$handleContainer.add(_this.$table).removeClass('rc-table-resizing'); $leftColumn.add($rightColumn).add($currentGrip).removeClass('rc-column-resizing'); _this.syncHandleWidths(); _this.saveColumnWidths(); return _this.triggerEvent('column:resize:stop', [$leftColumn, $rightColumn, newWidths.left, newWidths.right], e); }; })(this)); }; return ResizableColumns; })();
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
這是css控制的,你可以設(shè)置一個(gè)session,保存下你的列表的寬度,刷新的時(shí)候,就可以用js賦值給css就可以了。