Có cách nào thay đổi văn bản của nút "Cập nhật" trong ExtJS-4 Row Editor Grid không?ExtJS 4> Row Editor Grid> Cách thay đổi "Cập nhật" Nút Text
Trả lời
Tốt câu hỏi, tôi đã có một cái nhìn thông qua mã nguồn và khi không có gì bên trong các plugin RowEditing, trong lớp là nó kéo dài 'RowEditor.js' có như sau:
Ext.define('Ext.grid.RowEditor', {
extend: 'Ext.form.Panel',
requires: [
'Ext.tip.ToolTip',
'Ext.util.HashMap',
'Ext.util.KeyNav'
],
saveBtnText : 'Update',
cancelBtnText: 'Cancel',
...
});
Vì vậy, tôi d giả sử bạn muốn chỉ cần ghi đè lên 'saveBtnText'
trong trường hợp của bạn của 'Ext.grid.plugin.RowEditing'
vì nó gọi constructor mẹ với callParent (arguments) trong lớp RowEditing
không phải là dễ dàng và không phải không có hack trong khu vực không có giấy tờ. Vấn đề là, các Ext.grid.plugin.RowEditing
trực tiếp instantiates các Ext.grid.RowEditor
mà không cho phép bạn vượt qua trong tùy chọn cấu hình. Vì vậy, nói chung bạn cần phải ghi đè lên các phương pháp initEditor()
trong các plugin và nhanh chóng biên tập hàng của riêng bạn:
// ...
plugins: [{
ptype: 'rowediting',
clicksToEdit: 2,
initEditor: function() {
var me = this,
grid = me.grid,
view = me.view,
headerCt = grid.headerCt;
return Ext.create('Ext.grid.RowEditor', {
autoCancel: me.autoCancel,
errorSummary: me.errorSummary,
fields: headerCt.getGridColumns(),
hidden: true,
// keep a reference..
editingPlugin: me,
renderTo: view.el,
saveBtnText: 'This is my save button text', // <<---
cancelBtnText: 'This is my cancel button text' // <<---
});
},
}],
// ...
bạn đã kiểm tra mã của mình chưa? Phương thức startEdit() đưa ra lỗi! "Không xác định headerCt". Mặt khác, mã trên hoạt động tốt để chỉnh sửa .. Để giải quyết vấn đề, khởi tạo plugin trên initComponent và không phải thông qua tải chậm. –
Bạn có thể đúng. Tôi đã không thử mã với tính năng tự động tải được bật. –
Đối ExtJS 4
Ext.grid.RowEditor.prototype.cancelBtnText = "This is cancel";
Ext.grid.RowEditor.prototype.saveBtnText = "This is update";
Giải pháp này là để xác định nguyên mẫu của rowEditors. điều đó có nghĩa là cấu hình này là tổng quát hơn. Nếu bạn muốn thay đổi nó chỉ cho một trình soạn thảo, hoặc nếu bạn muốn nhận được cấu hình khác nhau, nguyên mẫu chắc chắn không phải là giải pháp.
nhìn vào mã nguồn:
initEditorConfig: function(){
var me = this,
grid = me.grid,
view = me.view,
headerCt = grid.headerCt,
btns = ['saveBtnText', 'cancelBtnText', 'errorsText', 'dirtyText'],
b,
bLen = btns.length,
cfg = {
autoCancel: me.autoCancel,
errorSummary: me.errorSummary,
fields: headerCt.getGridColumns(),
hidden: true,
view: view,
// keep a reference..
editingPlugin: me
},
item;
for (b = 0; b < bLen; b++) {
item = btns[b];
if (Ext.isDefined(me[item])) {
cfg[item] = me[item];
}
}
return cfg;
}`
phương pháp này trong tệp các rowEditor, và có một vòng lặp trên btns Array:
btns Array:
btns = ['saveBtnText', 'cancelBtnText', 'errorsText', 'dirtyText']
for (b = 0; b < bLen; b++) {
item = btns[b];
if (Ext.isDefined(me[item])) {
cfg[item] = me[item];
}
}
Trong chuỗi vòng lặp foreach này trong btnArray nó được tìm kiếm nếu tồn tại trong cfg cùng một thuộc tính chuỗi, nếu nó được tìm thấy nó được thêm vào cấu hình. Bạn chỉ phải quản lý rằng vòng lặp này tìm thấy những gì bạn muốn thay đổi:
Ví dụ: chúng ta muốn thay đổi nội dung của nút tiết kiệm:
tài sản saveBtnText đó là mục đầu tiên của btns mảng phải tồn tại trong cfg :
if (Ext.isDefined(me[item])) {
cfg[item] = me[item];
}
tìm kiếm này nếu tài sản tồn tại: if (Ext.isDefined(me[item]))
nếu saveBtnText đã tồn tại trong tính rowEditor thì:
cfg[item] = me[item];
và thuộc tính cấu hình bổ sung sẽ được đặt !!
- 1. ExtJS Lưới Xóa Row - Bắt chọn Row
- 2. Java Swing Text Editor
- 3. Android: Thay đổi nền nút trong ListView Row với onClick
- 4. ExtJS TreeStore cập nhật sự kiện cháy thay vì tạo
- 5. Nhóm Radio trong ExtJS Editor Lưới/Lưới
- 6. Tạo Text/Code Editor từ Scratch
- 7. Extjs Treepanel: CSS để thay đổi các biểu tượng mặc định (nút và lá)
- 8. Thay đổi DisplayFor Text/Value qua jquery
- 9. Thay đổi Text Direction UITextView
- 10. ExtJS nút unpress
- 11. MySQL TRƯỚC KHI CẬP NHẬT CẬP NHẬT - giá trị thay đổi
- 12. Lỗi khi cập nhật thay đổi svn
- 13. Thay đổi bảng sau đó cập nhật
- 14. Nút bật/tắt ExtJS
- 15. Trường nhập JS cập nhật góc sau khi thay đổi
- 16. LINQ to XML - cập nhật/thay đổi các nút của một tài liệu XML
- 17. C# Thay đổi ListView Chiều cao của Item/Row
- 18. VB6 Editor thay đổi trường hợp tên biến!
- 19. d3: Tránh các nút không thay đổi?
- 20. Cách cập nhật hoặc thay đổi giá trị trong cypher neo4j
- 21. Cập nhật Binding ngay lập tức khi DataContext thay đổi
- 22. Thay đổi Ember.ArrayProxy không kích hoạt handlebars #each cập nhật
- 23. Thay đổi nút radio ASP.NET
- 24. ComboBox không tự động cập nhật khi DataSource thay đổi?
- 25. friendly_id slug không thay đổi khi cập nhật
- 26. Đang cập nhật iPhone reachability trên mạng thay đổi
- 27. Django: Làm cách nào để thay thế/ghi đè/cập nhật/thay đổi tệp của FileField?
- 28. Combobox SelectedItem không cập nhật khi thay đổi nguồn
- 29. Rails ActiveAdmin - thay đổi sau khi cập nhật redirect_to
- 30. Trình duyệt không cập nhật thay đổi mã?
điều này thật tuyệt vời – Faradox