我在extjs中動態加載網格。正如您在下面看到的,「創建」列不夠寬,無法在其中顯示整個文本。我想設置每一列的寬度,使其完全顯示其文本。extjs - 設置網格列的寬度足以顯示其中的文本
這是可能的嗎?任何建議?
感謝您的幫助。
我在extjs中動態加載網格。正如您在下面看到的,「創建」列不夠寬,無法在其中顯示整個文本。我想設置每一列的寬度,使其完全顯示其文本。extjs - 設置網格列的寬度足以顯示其中的文本
這是可能的嗎?任何建議?
感謝您的幫助。
謝謝bensiu,我實現了登錄。但是,我不能說這是理想的解決方案,但它解決了我的目的。
首先,我瀏覽數據並找到該列中最長的字符串(包括該列的標題名稱)。
// Store the longest string for each column in columns[col].maxstring
// Define a hidden label
{
xtype: 'label',
id: 'lblTab',
hidden: true
}
var lblTab = Ext.getCmp('lblTab');
var hiddenField = Ext.util.TextMetrics.createInstance(Ext.getCmp('lblTab').el);
var widthValue = 0;
// Iterate through each columns to set its maximum width
for(var col in columns) {
// find width of string
widthValue = hiddenField.getWidth(columns[col].maxstring);
// set column width
colModel.setColumnWidth(columns[col].index, widthValue + 20, false);
}
我希望這有助於某人。
使用參數width: ...
與您的列配置。這很簡單。我沒有看到你的代碼,所以我猜測。
然而,它看起來像你有更多的垂直空間 - >也許在2行(使用模板)中斷日期將是解決方案,或者你可以有一個特殊的css類只爲這個單元格與較小的字母,以適應。
編輯: 在你的情況可能是ColumnModel(至少可以得到120到適合您的日期,如果有更多的列格會調整)和setColumnWith(defaultWith的組合)動態地根據數據和數量的長度列 - 邏輯取決於你
嗨,感謝您的回覆。我不能使用「寬度:」因爲我動態加載網格,它有很多列,所以我不能猜測它的寬度。此外,我只需要一行中的所有內容(額外的垂直空間是由於該列中的圖像)。問候 – user427969 2011-03-25 03:44:39