我正在使用Ext.define()(Ext v4)扩展GridPanel.
双击网格行时,我需要获取行数据.此时我甚至无法让事件监听器工作:
Ext.define('Application.usersGrid', {
extend: 'Ext.grid.GridPanel',
alias: 'widget.usersgrid',
viewConfig: {
listeners: {
dblclick: function(dataview, index, item, e) {
alert('dblclick');
}
}
},
...
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
如果有人需要答案 - 这是正确的方法:
Ext.define('Application.usersGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.usersgrid',
viewConfig: {
listeners: {
itemdblclick: function(dataview, record, item, index, e) {
alert('itemdblclick');
}
}
},
...
Run Code Online (Sandbox Code Playgroud)
http://dev.sencha.com/new/ext-js/4-0/api/Ext.grid.GridView#event-itemdblclick
我有一个简单的GridPane显示了几个标签和一个按钮,但我似乎无法让它适合父StackPane.我将如何前进并制作它以填充它所在的任何容器?
GridPane g = new GridPane();
g.add(new Label("Categories"),0,0);
g.add(new Label("Content"),1,0);
Button newCat = new Button("New Category");
newCat.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
System.out.println("Clicked");
}
});
g.add(newCat,0,1);
g.setGridLinesVisible(true);
StackPane root = new StackPane();
root.getChildren().add(g);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
Run Code Online (Sandbox Code Playgroud)
UI真的不是我的强项,任何帮助将不胜感激.
我有一个ExtJS(4.0.7)GridPanel,我正在从商店中填充.我在GridPanel列中显示的值需要具有不同的视图,具体取决于记录中的数据类型.
最终目标是记录的type
属性具有"双"或"整数"值的记录向用户提供他们可以调整的滑块,而一种"字符串"只是呈现一些只读文本.
我已经创建了一个自定义列来执行此操作.它检查渲染器中的类型并确定要渲染的内容.
我已经使用下面的代码使"字符串"正常工作,但是我在如何动态创建和渲染列中更复杂的滑块控件方面苦苦挣扎.
这个简化的例子只是试图在其中呈现一个Panel
日期控件,好像我可以做到这一点,我可以弄清楚滑块的其余部分.
Ext.define('MyApp.view.MyColumn', {
extend: 'Ext.grid.column.Column',
alias: ['widget.mycolumn'],
stringTemplate: new Ext.XTemplate('code to render {name} for string items'),
constructor: function(cfg){
var me = this;
me.callParent(arguments);
me.renderer = function(value, p, record) {
var data = Ext.apply({}, record.data, record.getAssociatedData());
if (data.type == "string") {
return me.renderStringFilter(data);
} else if (data.type == "double" || data.type == "integer") {
return me.renderNumericFilter(data);
} else {
log("Unknown data.type", data);
};
},
renderStringFilter: function(data) {
// this works great and does …
Run Code Online (Sandbox Code Playgroud) 我想检索Gridpane中一个特定单元格的内容.我把按钮放在了细胞中
setConstraints(btt , 0 ,1 )
setConstraints(btt , 0 ,2 )
getChildren().add....
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这GridPane.getChildren.get(10)
是不好的.我想直接进入单元格(4,2)并获取其内容.
在MVC模式之前,我将简单地通过将其包含在JS的顶部来包含UX类,之后Ext.onReady
:
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext.ux', 'extjs/examples/ux');
Ext.require([
'Ext.ux.grid.FiltersFeature'
]);
Run Code Online (Sandbox Code Playgroud)
现在我正在使用MVC模式,我有一个需要使用相同功能的网格面板.我在视图中包含了一个require语句,如下所示:
Ext.define('ST.view.StudentLog', {
extend: 'Ext.grid.Panel',
alias: 'widget.studentlog',
requires: [
'Ext.ux.grid.FiltersFeature'
],
Run Code Online (Sandbox Code Playgroud)
但该应用程序首次开始加载时会产生404错误.
有任何想法吗?
编辑:
我已经尝试在视图的顶部放置相同的代码块也无济于事(参考Ext.Loader.setConfig / .setPath
块).
extjs/src/ux/
无论我如何尝试告诉它,加载器都会继续尝试加载UX类.根据这个建议,我也尝试在我的应用程序控制器中定义一个路径属性,但它看起来像回答者在后面看到的那样在4.1 rc3中不存在,因为我找不到它而它没有工作.
如果我只是在带有<script>
标记的HTML中将FilterFeature.js添加为导入的源文件,那么当我的应用程序启动时,它的所有依赖项都会出现404错误.
必须有一种简单的方法可以直接从UX文件夹中将UX类包含在应用程序中,以便它可以链接到其他UX依赖项.
我有一个GridPane
1个字母的标签.
这是一张图片:
图片http://s1.directupload.net/images/121010/xu8o79sr.jpg
这是代码:
int charSpacing = 1;
int charsInWidth = 28;
int charsInHeight = 16;
double charWidth = 15;
double charHeight = 20;
GridPane gp = new GridPane();
gp.setAlignment(Pos.CENTER);
Label[] tmp = new Label[charsInHeight*charsInWidth];
String text = "W";
int currArrPos = 0;
for(int y = 0; y < charsInHeight; y++) {
HBox hbox = new HBox(charSpacing);
for(int x = 0; x < charsInWidth; x++) {
tmp[currArrPos] = new Label(text);
tmp[currArrPos].setTextFill(Paint.valueOf("white"));
tmp[currArrPos].setMinHeight(charHeight);
tmp[currArrPos].setMinWidth(charWidth);
tmp[currArrPos].setMaxHeight(charHeight);
tmp[currArrPos].setMaxWidth(charWidth);
tmp[currArrPos].setStyle("-fx-border-color: white;");
hbox.getChildren().add(tmp[currArrPos++]); …
Run Code Online (Sandbox Code Playgroud) 如何根据严重性条件更改数据网格中的行颜色?我是这个EXTJS主题的新手.我曾经读过阅读,存储到存储和编写器来编写数据.将所有数据提取到网格后,如何根据严重性条件更改数据网格中的行颜色?你可以用代码工作来解释我吗?
我正在尝试创建一个动态网格类(我不知道有关列的任何信息,但它们是从json响应中给出的,并且网格相应地准备自己).在这里,我找到了我正在寻找的东西,但它给了我一个错误:
me.model is undefined
me.setProxy(me.proxy || me.model.getProxy());
ext-all-debug.js (line 47323)
Run Code Online (Sandbox Code Playgroud)
我试图添加代理和模型,但我没有成功,我一直得到同样的错误.
这是我正在研究的ExtJS代码:
// ExtJS 4.1
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', '../extjs-4.1.0/examples/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*', ]);
Ext.define('DynamicGrid', {
extend: 'Ext.grid.GridPanel',
storeUrl: '',
enableColumnHide: true,
initComponent: function () {
var store = new Ext.data.Store({
url: this.storeUrl,
reader: new Ext.data.JsonReader(),
autoLoad: true,
scope: this,
listeners: {
scope: this,
metachange: function (store, meta) {
if (typeof (store.reader.jsonData.columns) === 'object') {
var columns = [];
/**
* Adding RowNumberer or setting selection model …
Run Code Online (Sandbox Code Playgroud) 我有一个分页的GridPanel,不知道如何添加服务器端排序.我是否为sortChange()事件添加了一个监听器?我会覆盖它吗?或者是否有另一个我应该合作的事件.
任何帮助,将不胜感激.
脚本
我想更新具有静态数据存储的网格中特定记录的列数据.这是我的商店:
extend : 'Ext.data.Store',
model : 'MyModel',
autoLoad:true,
proxy: {
type: 'ajax',
url: 'app/data/data.json',
reader: {
type: 'json',
root: 'users'
}
},
Run Code Online (Sandbox Code Playgroud)
我的data.json
{
'users': [{
QMgrStatus: "active",
QMgrName: 'R01QN00_LQYV',
ChannelStatus: 'active',
ChannelName: 'LQYV.L.CLNT',
MxConn: 50
}]
}
Run Code Online (Sandbox Code Playgroud)
我正在做什么来更新记录:
var grid = Ext.getCmp('MyGrid');
var store = Ext.getStore('Mystore');
store.each(function(record, idx) {
val = record.get('ChannelName');
if (val == "LQYV.L.CLNT") {
record.set('ChannelStatus', 'inactive');
record.commit();
}
});
console.log(store);
grid.getView().refresh();
Run Code Online (Sandbox Code Playgroud)
我的问题
我在这里更新记录.它没有反映在我的网格面板中.网格使用相同的旧存储(静态).是静态数据的问题?或者我错过了什么或者出错了?请帮我解决这个问题.非常感谢.
我的编辑
我尝试根据状态对列进行颜色编码.但是,即使我正在更新商店,我总是得到status ="active".
我想在网格中做什么
{
xtype: 'grid',
itemId: …
Run Code Online (Sandbox Code Playgroud)