我通过以下方式成功地向我的网格添加了一个双击事件监听器:
listeners : {
itemdblclick: function(dv, record, item, index, e) {
alert('working');
}
},
Run Code Online (Sandbox Code Playgroud)
现在,我需要在所选行的第三列中获取确切值,我该怎么做?
编辑
好的找到了:
listeners: {
itemclick: function(dv, record, item, index, e) {
alert(record.get('name'));
}
}
Run Code Online (Sandbox Code Playgroud)
但似乎结果record.get('name')不是文字!它是一个对象,但我无法像处理文本那样处理它.任何人都有任何想法吗?
编辑
例如,如果我将名称传递给搜索功能:Search(record.get('name'));这将无效.但如果我这样通过它:Search('Mike');它的作用!
我正在尝试在JavaFX中制作一个简单的游戏(这是一项学校工作),我试图用电路板清除面板,然后重新绘制它.我已经尝试了很多方法,这是我发现的唯一一个删除了所有板块(可视化)而没有创建一个可视错误,显示已经删除但仍然显示的块.
所以我声明gridPane如下:
private GridPane gridPecas;
@Override
public void start(Stage primaryStage)
{
gridPecas = new GridPane();
gridPecas.setGridLinesVisible(true);
paintBoard();
// rest of the code to create and paint the Stage
}
private void paintBoard()
{
gridPecas.getChildren().clear();
// Code to fill the board with ImageView and Images of the pieces
}
Run Code Online (Sandbox Code Playgroud)
这个方法的问题在于,当"gridPecas.getChildren().clear();"时 被称为我只是松散网格线GridPanel.
我怎么解决这个问题?
以下是我的代码,显示一个包含总费用摘要的网格面板.我想用平均值显示另一个摘要行.那有什么帮助吗?
Ext.require(['Ext.data.*', 'Ext.grid.*']);
Ext.onReady(function() {
Ext.define('NewEstimate', {
extend: 'Ext.data.Model',
fields: ['description', 'cost'],
validations: [{
type: 'length',
field: 'description',
min: 3
}, {
type: 'int',
field: 'cost',
min: 1
}]
});
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing');
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
autoSync: false,
model: 'NewEstimate',
proxy: {
type: 'rest',
url: 'app.php/users',
reader: {
type: 'json',
root: 'data'
},
writer: {
type: 'json'
}
},
listeners: {
write: function(store, operation){
var record = operation.records[0],
name = Ext.String.capitalize(operation.action),
verb;
if (name == …Run Code Online (Sandbox Code Playgroud) 我将Ext JS Grid Panel放在iFrame中.有谁知道如何将它放在iFrame的中心.
目前它看起来像这样 -

我希望它像这样 -

我想在我的gridpanel标题的右侧添加一个按钮,但无论如何都找不到.
我不想添加工具栏,因为它只是我要添加的1个按钮.
我有一个网格列表,可以由最终用户在表单中更改其数据.最后,我想通过单击按钮同步所有网格,然后执行操作.
我写了下面的代码:
$.when.apply(
Ext.ComponentQuery.query('grid')
.forEach(function(item) {
if (item.getXType() == "grid") {
if (item.store.getNewRecords().length > 0 || item.store.getUpdatedRecords().length > 0 || item.store.getRemovedRecords().length > 0) {
item.store.sync();
}
}
})).then(function (results) {
//do something
});
Run Code Online (Sandbox Code Playgroud)
问题在于store.sync()不等待回调.
这样做的推荐方法是什么?
如何使前五行的Backgroud或文本颜色与接下来的五行不同.例如,前5个黄色,5个橙色,5个黄色,5个橙色等等.
我为网格添加了以下监听器
listeners: {
viewready: function(g) {
g.getView().getRow(1).style.color="#f30";
}
}
Run Code Online (Sandbox Code Playgroud)
我已经用它来获取第二行的内容为红色.但它不适合我.
我正在使用带有CellEditing插件的ExtJs Grid.它完美地工作,除了当我对其施加的验证失败时失去无效值.
例如,如果我在网格中有一个不允许超过10个字符的值的可编辑文本字段,并且用户输入" olympicssucks ",则验证将失败,并且文本字段周围将出现一个红色框.当用户点击该字段时,值" olympicssucks "将丢失.
我希望网格仍然保存无效数据,并保持周围的红色框.
另一个(可能更清楚)示例: http ://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html尝试编辑第一个单元格值:" Adder's-Tongue "并将其设为空.请注意红色框和验证消息.现在点击开箱即可.失败的验证将恢复细胞恢复到原来的价值,Adder's舌.
tl; dr:我的问题,重申,是我想保留无效值,但仍然有验证显示它周围的红色框.我确信它可能,但它是如何完成的?
我尝试过的:
码:
var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
var grid = {
xtype: 'grid', store: dataStore, plugins: [cellEditing],
columns: [
{
text: 'Items', dataIndex: 'items', flex: 1, sortable : false,
editor: { …Run Code Online (Sandbox Code Playgroud) 我RadioButtons在网格面板中有四个,但是当我这样做时:
<GroupBox x:Name="radioButtons">
<RadioButton Content="1" Height="16" HorizontalAlignment="Left" Margin="10,45,0,0" Name="status1" VerticalAlignment="Top" />
<RadioButton Content="2" Height="16" HorizontalAlignment="Left" Margin="10,67,0,0" Name="status2" VerticalAlignment="Top" />
<RadioButton Content="3" Height="16" HorizontalAlignment="Left" Margin="10,89,0,0" Name="status3" VerticalAlignment="Top" />
<RadioButton Content="4" Height="16" HorizontalAlignment="Left" Margin="10,111,0,0" Name="status4" VerticalAlignment="Top" />
</GroupBox>
Run Code Online (Sandbox Code Playgroud)
它说:
错误 1 对象“GroupBox”已经有一个子项,无法添加“RadioButton”。“GroupBox”只能接受一个孩子。
最后三个RadioButtons说:
属性“内容”设置了不止一次。
我的GroupBox怎么了?此外,在我的代码中,我想访问RadioButton被检查的(最好是int)。我该怎么做呢?我试着在谷歌上搜索,发现了很多结果,但我一个都看不懂。
我们正在使用ExtJS 4.2并遇到了奇怪的问题.有一个分组的网格面板,我们将元素拖动到树面板.在大多数情况下,一切工作正常,但有时由于未知原因拖动错误的项目或根本不会发生.在这些情况下,在控制台中打印的调用堆栈显示无限循环:
Ext.dom.Query.Ext.core.DomQuery.Ext.DomQuery.DQ.filter
Ext.dom.Query.Ext.core.DomQuery.Ext.DomQuery.DQ.is
Ext.define.is
Ext.define.getNode
Ext.define.indexOf
Ext.define.onLastFocusChanged
Ext.define.setLastFocused
Ext.define.focusRow
Ext.define.onRowFocusExt.define.onLastFocusChanged
Ext.define.setLastFocused
Ext.define.focusRow
Ext.define.onRowFocus
....
Ext.define.onLastFocusChanged
Ext.define.setLastFocused
Ext.define.focusRow
Ext.define.onRowFocus
....
Run Code Online (Sandbox Code Playgroud)
任何故意复制该错误的尝试都失败了,将有关网格事件的所有信息记录到控制台并没有显示任何异常.
有人有这个问题,也许修复成功了吗?
谢谢
gridpanel ×10
extjs ×6
javascript ×4
extjs4 ×3
grid ×2
c# ×1
click ×1
editing ×1
extjs-stores ×1
extjs4.2 ×1
gridlines ×1
javafx-2 ×1
promise ×1
radio-button ×1
summary ×1
validation ×1
wpf ×1