我有點困惑通過對EditorGrid下列文件:ExtJS的EditorGridPanel和列渲染
編輯是由列的 dataIndex後備存儲器中(指定的 字段值進行所以如果你使用 渲染器以 顯示轉換後的數據,這個必須是 佔)。
我真的不知道如何「帳戶」我在下列情況下渲染:
...
columns : [{
header : 'Foo',
width : 100,
dataIndex: 'foo',
renderer: function(value, p, record) {return value? value.bar: ""},
editor : new Ext.form.TextField({
allowBlank : false
})
}]
...
正如你所看到的,渲染是一個非常簡單的,但是這顯然不是將與TextField一起工作。我明白爲什麼當用戶編輯時它只顯示我的foo對象而不顯示bar屬性。
那麼如何解決這個問題呢?我是否應該用新的setValue
和getValue
來覆蓋Ext.form.TextField
?我想過使用事件beforeedit
和afteredit
,但這似乎是矯枉過正。我覺得我在這裏錯過了很簡單的事情。
在情況下,我沒有說清楚,這裏的結果我得到的幾個屏幕:
列渲染的作品!
Ext.form.TextField得到一個對象
這對於我。我想我不確定我在前後會發生什麼變化。我如何訪問編輯器?我有「event.grid」和「event.record」,所以我猜它是在網格的某個地方:)。 – Stephano 2011-04-06 19:22:12
似乎應該有一個更簡單的方法來做到這一點,因爲我的數據轉換非常簡單。 – Stephano 2011-04-06 19:37:30
我認爲這是正確的,但說實話,我沒有看到這樣做的好方法。我覆蓋了startEditing方法,然後在事件發生後我改回了事情。這是馬虎。我猜測這樣做的真正方法是編寫一個Ext.form.Field的擴展,它能正確顯示你的對象,並以某種方式允許正確編輯。 – Stephano 2011-04-06 20:08:03