- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前有一个带有 Ext.ux.RowEditor 插件的 GridPanel。行编辑器中存在四个字段:端口、IP 地址、子网和 DHCP。如果所选行的 DHCP 字段(复选框)被选中,我需要使其他三个字段不可编辑。
我一直在尝试在触发 beforeedit 事件时执行此代码,但无济于事......我只找到了使整个列不可编辑的方法。到目前为止我的代码:
this.rowEditor.on({
scope: this,
beforeedit: this.checkIfEditable
});
checkIfEditable:function(rowEditor, rowIndex) {
if(this.getStore().getAt(rowIndex).get('dhcp')) {
// this function makes the entire column un-editable:
this.getColumnModel().setEditable(2, false);
// I want to make only the other three fields of the current row
// uneditable.
}
}
如果需要任何说明,请告诉我。
任何可能扩展 RowEditor 以完成目标功能的帮助也将不胜感激!
最佳答案
您可以在函数 startEditing
中添加对函数 isCellEditable
的调用
//.... RowEditor.js
startEditing: function(rowIndex, doFocus){
//.... search for the starting of the below loop into the source code
var cm = g.getColumnModel(), fields = this.items.items, f, val;
for(var i = 0, len = cm.getColumnCount(); i < len; i++){
val = this.preEditValue(record, cm.getDataIndex(i));
f = fields[i];
f.setValue(val);
// *** here add a call to isCellEditable *** //
f.setDisabled(!cm.isCellEditable(i, rowIndex));
// ***************************************** //
this.values[f.id] = Ext.isEmpty(val) ? '' : val;
}
//....
然后覆盖列模型的 isCellEditable
并根据您的条件禁用该字段:
YYY.getColumnModel().isCellEditable = function(colIndex, rowIndex){
if (grid.getStore().getAt(rowIndex).get('dhcp')) {
// you can do more check base on colIndex
// only to disabled the one you want
return false;
}
return Ext.grid.ColumnModel.prototype.isCellEditable.call(this, colIndex, rowIndex);
}
关于javascript - 使 ExtJS GridPanel 的某些单元格不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269817/
我在垂直面板内有一个网格面板,这样我就可以在网格面板下面放置一些东西。直到我在网格面板上设置商店属性之前,一切都不会出现问题。然后窗口就变白了,什么也没有渲染。一定有一些小东西我错过了。 newWin
我设计了一个 ExtJS GridPanel 并从数据库中填充数据。 我的要求是在单击网格行(如编辑按钮)时从网格中获取 id 并使用特定数据填充窗口(使用数据库中的 id 检索数据)。 我怎样才能做
我正在使用 array-grid extjs 示例来尝试将网格面板放入容器窗口中。问题在于调整容器窗口的大小,gridpanel 不会自动适应新的大小。据我了解,这就是它应该如何工作。 这是示例的链接
我想向我的 gridpanel 数据添加工具提示。我想把 map 放在工具提示面板上,我明白了,但是我的静态 map 的宽度是 600 像素,它从工具提示面板溢出。我使用了下面的代码,它工作正常,但不
我有一个问题无法解决,尽管我花了很长时间尝试解决它。 我通常使用 GridPanel 来对齐表单上的控件。然而,它有一个恼人的错误。当 GridPanel 对齐模式为 alClient 并且我最大
我正在使用 Extjs gridPanel 来显示数据。当没有可用数据时,我想在 gridPanel 中显示“无数据...”消息。这该怎么做 ?。 我尝试了 emptyText 属性,但没有用。 我认
我正在从数据库绑定(bind) ExtJs Gridpanel,并在我的网格面板下方添加“删除”按钮。通过使用删除按钮处理程序,我删除了网格面板上的选定记录。但是,删除后,网格不会刷新(它从数据库中删
我有一个绑定(bind)到 gridpanel 的 jsonStore,带有分页工具栏和一些自定义过滤器。但每次我使用分页时,所有过滤器设置都会丢失。我怎样才能保留它们? 最佳答案 您必须将它们与分页
这是一个非常简单的 Scala GUI 测试: import scala.swing._ object FirstSwingApp extends SimpleGUIApplication { d
我有一个标签面板。在选项卡中,我有一个面板,其中包括一个工具栏和 3 个项目:[字段集、网格面板和另一个字段集(或某些按钮)]。我无法让网格面板显示滚动条。它仅在我设置 gridpanel 的 max
我有一个带有函数的Ext.grid.Panel,该函数返回一个自定义类,该类用于通过覆盖getRowClass函数对网格中的行进行颜色编码。这很好用,但是我想给用户选择更改网格着色标准的选项。在下面的
尽管 ExtJs GridPanel 是丰富的数据控件,但它限制了列卡住功能。 通过锁定属性只能卡住第一列。 有没有人解决过这个问题? 这是我的代码: Ext.require(['Ext.grid.*
如何对所有选定行的特定列求和? (通过 JavaScript) var sumCheck= function () { var resultSum;
我有一个网格,我需要选择该行,当用户单击它的任意位置时,也就是说,今天我有一个复选框来选择该行,我想知道是否有任何配置或 Ext 的某些内容它本身给了我这个。 今天我有这个: 当用户单击该行上的任意位
我正在使用 Ext JS 2.3.0 并创建了如下所示的搜索对话框。 搜索结果显示在带有单个“名称”列的 GridPanel 中,但请注意,该列不会拉伸(stretch)以填充所有可用的水平空间。但是
我使用带有网格面板的 Extjs 4.1。现在我想通过 id/index 获取一行来隐藏它(而不是过滤器)。 我试过了(它说没有方法 getRow): gridpanel.getView().getR
我有一个用于搜索项目的网格面板。它一开始是空的,但只要用户触发附近的搜索字段,它就会配置商店加载。 我正在使用 grid.getSelectionModel().select(0) 在加载时选择第一行
我有一个通过 XML 存储加载数据的网格面板。我无法控制 XML 将返回多少项,但我想将网格限制为显示 x 行数。 抱歉,如果这是基本的,我无法通过谷歌找到它 干杯 最佳答案 您是不想显示超出 x 的
我有一个 bool 值的记录,根据 bool 值,我希望 GridPanel 的行呈现粗体。我确信有一个很好的 GridView 样式的方法可以做到这一点,但我似乎找不到它。 谢谢。 最佳答案 您的回
所以我有一个普通的网格,有一些列: { xtype : 'gridpanel',
我是一名优秀的程序员,十分优秀!