亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在加載數據后調整jqgrid的列寬?

如何在加載數據后調整jqgrid的列寬?

MMTTMM 2019-09-03 20:17:52
我的最終目標是讓jqgrid根據數據內容自動設置列寬。作為前往那里的路徑的一部分,我需要能夠在加載數據之后設置列寬,這時我知道每列的最大寬度。但是,一旦我知道列的最大寬度,我如何在“loadComplete”事件中設置每列的寬度并使網格刷新每列的新寬度?我在網上找到的大多數帖子都是關于網格的整體寬度。我想要的是設置每個列的寬度,如果總寬度太長,則自動顯示水平滾動條。更新:在看到Oleg的精彩演示之后,我最終在dqGrid(4.5.4)中編寫了這個代碼。這是我做的:找到該功能addJSONData = function(data,t, rcnt, more, adjust) {然后找到這個功能            for (j=0;j<rowReader.length;j++) {                v = $.jgrid.getAccessor(cur,rowReader[j]);                rd[ts.p.colModel[j+gi+si+ni].name] = v;                rowData.push(addCell(idr, v, j + gi + si + ni, i + rcnt, cur, rd));                // my addtion: stores the largest header size                var newWidth = v.length * 6;                 if (ts.grid.headers[j].width < newWidth) {                    ts.grid.headers[j].width = newWidth;                }            }然后在此函數結束之前添加以下內容        // my addition: invoke the resizing logic        for (j = 0; j < rowReader.length; j++) {            ts.grid.resizing = { idx: j };            ts.grid.dragEnd();        }之后,網格將根據內容調整每列的寬度。我仍然需要幫助的一件事是如何珍貴地計算新的寬度。我目前的硬編碼計算var newWidth = v.length * 6;顯然不是很可擴展。
查看完整描述

3 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

我發現“更新”有點奇怪。首先是它的新問題(原文是“如何在加載數據后調整jqGrid的列寬?”)。秒我不建議更改jqGrid的源代碼,如果真的需要它。而不是你可以使用loadCompletebeforeProcessing?,F在關于你的主要問題:我認為你可以將細胞內容包裝在里面<span>...</span>。之后,您可以使用jQuery.width計算<span>單元格中每個文本的精確寬度(以像素為單位)。最后你可以使用setColWidth。

查看完整回答
反對 回復 2019-09-03
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

我很清楚更改源代碼的缺陷。這只是一個概念的證明,在我看來,實現這個是一個相當簡單但非常有用的功能是多么困難。特別是簡單的HTML表本身就是這樣做的。當然,在不重新處理數據的情況下也實現了效率。

查看完整回答
反對 回復 2019-09-03
  • 3 回答
  • 0 關注
  • 1656 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號