- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 ExtJS 的新手。
我在同一个页面上有两个网格。第一个网格有 3 列。第二个只有一个。问题是当第二个被呈现时,它会覆盖第一个网格的属性。
例如,当我尝试编辑第一个网格中的行时,它采用第二个网格中行的宽度。
var $booleanArray = [ ['denied', 'Denied'], ['allowed', 'Allowed']];var myPageSize = 10;Ext.Loader.setConfig({ enabled: true });Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.util.*', 'Ext.state.*']);Ext.onReady(function () { Ext.define('CharacteristicModel', { extend: 'Ext.data.Model', fields: [ {name: 'name'}, {name: 'value'}, {name: 'order'} ], validations: [ { type : 'length', field: 'name', min : 1 } ] }); var characteristicsStore = new Ext.data.Store({ proxy : { model : 'CharacteristicModel', type : 'rest', api : { read : admin_path + '/getCharacteristics/1/', create : admin_path + '/saveCharacteristics/1/', update : admin_path + '/saveCharacteristics/1/', destroy: admin_path + '/destroyCharacteristic/1/' }, reader : { type : 'json', root : 'data', totalProperty: 'total_count' }, writer : { type: 'json', root: 'data' }, buffered: true }, listeners: { read : function (response) { }, load : function (store) { }, write: function (store, operation) { store.load(); } }, pageSize : myPageSize, autoLoad : { start: 0, limit: myPageSize }, autoSync : true }); var rowEditing = Ext.create('Ext.grid.plugin.RowEditing'); var characteristicsGrid = new Ext.grid.GridPanel({ id : 'characteristicsGrid', renderTo : 'characteristics_grid_div_1', store : characteristicsStore, width : 480, stateful : true, stateId : 'characteristicsGrid', title : 'Grid "1"', iconCls : 'icon-user', listeners : { itemdblclick: function (dv, row, item, index, e) { dv.refresh(); dv.getGridColumns()[0].setEditor({ disabled: true, editable: false }); if (row.data.id == 6 || row.data.id == 7) { dv.getGridColumns()[1].setEditor({ xtype : 'combo', store : new Ext.data.ArrayStore({ fields: ['abbr', 'action'], data : $booleanArray }), displayField : 'action', valueField : 'abbr', mode : 'local', typeAhead : false, triggerAction: 'all', lazyRender : true, emptyText : 'Select action' }); } else if (row.data.id == 8 || row.data.id == 11) { dv.getGridColumns()[1].setEditor({ disabled: true, editable: false }); } else { dv.getGridColumns()[1].setEditor({ xtype: 'textfield' }); } } }, columns : [ { id : 'name', text : 'Account characteristic', sortable : false, width : 340, fixed : true, dataIndex: 'name' }, { id : 'value', text : 'Value', sortable : false, dataIndex: 'value', width : 70, fixed : true, editor : { xtype: 'textfield' }, renderer : function (value, field) { if (field.record.data.id == 6 || field.record.data.id == 7) { if ($booleanArray[0][0] != value) { value = $booleanArray[1][1]; } else { value = $booleanArray[0][1]; } } return value; } }, { id : 'order', text : 'Order', sortable : false, dataIndex: 'order', width : 70, fixed : true, editor : { xtype: 'textfield' }, renderer : function (value, field) { return value; } } ], bbar : Ext.create('Ext.PagingToolbar', { store : characteristicsStore, displayInfo: true, pageSize : myPageSize, displayMsg : 'Show {0} - {1} из {2}', emptyMsg : "0 rows" }), dockedItems: [ { xtype: 'toolbar', items: [ { text : 'Add', iconCls: 'icon-add', handler: function () { var grid_colums = rowEditing.cmp.getSelectionModel().view.getGridColumns(); grid_colums[0].setEditor({ xtype : 'combo', store : new Ext.data.ArrayStore({ fields: ['id', 'name'], data : $characteristics }), displayField : 'name', valueField : 'id', mode : 'local', typeAhead : false, triggerAction: 'all', lazyRender : true, emptyText : 'Select action' }); grid_colums[1].setEditor({ xtype: 'textfield' }); // empty record //characteristicsStore.autoSync = false; characteristicsStore.insert(0, new CharacteristicModel()); rowEditing.startEdit(0, 0); //characteristicsStore.autoSync = true; } }, '-', { itemId : 'delete', text : 'Delete', iconCls : 'icon-delete', disabled: true, handler : function () { var selection = characteristicsGrid.getView().getSelectionModel().getSelection()[0]; if (selection) { characteristicsStore.remove(selection); } } } ] } ], plugins : [rowEditing] }); characteristicsGrid.getSelectionModel().on('selectionchange', function (selModel, selections) { characteristicsGrid.down('#delete').setDisabled(selections.length === 0); });});Ext.onReady(function () { Ext.define('AdvantagesModel', { extend: 'Ext.data.Model', fields: [ {name: 'name'} ] }); // setup the state provider, all state information will be saved to a cookie //Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider')); var advantagesStore = new Ext.data.Store({ idProperty: 'AdvantagesModel', proxy : { model : 'AdvantagesModel', type : 'rest', api : { read : admin_path + '/getAdvantages/1/', create : admin_path + '/saveAdvantages/1/', destroy: admin_path + '/destroyAdvantages/1/' }, reader : { type : 'json', root : 'data', totalProperty: 'totalCount' }, writer : { type: 'json', root: 'data' }, buffered: true }, listeners: { read : function (response) { }, load : function (store) { }, write: function (store, operation) { store.load(); } }, pageSize : myPageSize, autoLoad : { start: 0, limit: myPageSize }, autoSync : true }); var rowEditing = Ext.create('Ext.grid.plugin.RowEditing'); var advantagesGrid = new Ext.grid.GridPanel({ id : 'advantagesGrid', renderTo : 'advantages_grid_div_1', store : advantagesStore, width : 482, height : 355, stateful : true, stateId : 'advantagesGrid', title : 'Grid 2', iconCls : 'icon-user', listeners : { beforeedit: function (dv, row, item) { //advantagesGrid.getView().refresh(); if (row.record.raw) { return false; } } }, columns : [ { id : 'name', text : 'Advantages', sortable : false, dataIndex: 'name', width : 480 } ], bbar : Ext.create('Ext.PagingToolbar', { store : advantagesStore, displayInfo: true, pageSize : myPageSize, displayMsg : 'Show {0} - {1} из {2}', emptyMsg : "0 rows" }), dockedItems: [ { xtype: 'toolbar', items: [ { text : 'Add', iconCls: 'icon-add', handler: function () { var grid_colums = rowEditing.cmp.getSelectionModel().view.getGridColumns(); grid_colums[0].setEditor({ xtype : 'combo', store : new Ext.data.ArrayStore({ fields: ['id', 'name'], data : $advantages }), displayField : 'name', valueField : 'id', mode : 'local', typeAhead : false, triggerAction: 'all', lazyRender : true, emptyText : 'Select action' }); // empty record advantagesStore.autoSync = false; advantagesStore.insert(0, new AdvantagesModel()); rowEditing.startEdit(0, 0); advantagesStore.autoSync = true; } }, '-', { itemId : 'delete', text : 'Delete', iconCls : 'icon-delete', disabled: true, handler : function () { var selection = advantagesGrid.getView().getSelectionModel().getSelection()[0]; if (selection) { advantagesStore.remove(selection); } } } ] } ], plugins : [rowEditing] }); advantagesGrid.getSelectionModel().on('selectionchange', function (selModel, selections) { advantagesGrid.down('#delete').setDisabled(selections.length === 0); });});
最佳答案
如果您在同一页面上有两个可编辑的网格,则让您的两个网格 ID 列以不同方式标识的替代方法是使用 Ext.grid.plugin.RowEditing 类的两个不同实例/对象。很多时候拥有相同的 ID 很重要。
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing');
var rowEditing2 = Ext.create('Ext.grid.plugin.RowEditing');
plugins : [rowEditing]
plugins : [rowEditing2]
关于ExtJs 同一页面上的两个或多个网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927059/
您能否建议如何在 Bootstrap 或 IE 兼容的 CSS 网格中,在没有 CSS 网格的情况下进行以下布局。 在大屏幕中 头部,左侧堆叠的 body 和右侧覆盖头部和 body 高度的图像。 [
我想在 Objective-C 中绘制一个 15*15 的网格。格子颜色是蓝色的,就像在诺基亚制作“贪吃蛇”游戏的棋盘一样。 我试过使用 for 循环来创建 subview ,但它似乎不起作用,我查看
我正在尝试将 CSS 网格与 grid-template-columns: repeat(auto-fill, auto) 一起使用,单元格被设置为最大宽度,导致每行一个元素。 p> 是否可以让元素宽
我正在努力在网格的自定义列上添加一个指向网站的简单、简单的链接。我用了 Inchoo blog为列添加自定义渲染器,它可以工作。我认为只需修改渲染并添加标签就足够了。但我的希望破灭了,行不通。 如何做
使用 Gnuplot 我绘制了下图 - 现在,正如您在图像中看到的那样,很难在线条之间识别出其末端的块。所以我想用不同的颜色或样式交替着色网格。 我现在用来给网格着色的代码是 - set style
假设我有一个非常简单的 WPF 网格(6 行 x 6 列),定义如下:
我有一个希望绑定(bind)到 WPF 网格的集合。 我面临的问题是列数是动态的并且取决于集合。这是一个简单的模型: public interface IRows { string Messa
我正在使用 Vaadin 8,我想制作某种混淆矩阵。我想知道是否可以根据单元格位置而不是数据提供者手动填充表格/网格的值。 referenceTable.addColumn(reference ->
我在 http://jsfiddle.net/TsRJy/ 上创建了一个带有 div 框的网格. 问题 我不知道如何使 a:hover 工作。 信息 重写 HTML 代码,因为表格不适合我。 http
银光处女在这里。如何使网格周围的用户控件自动调整大小以适应内部网格宽度?目前,当浏览器窗口更宽时,用户控件的显示尺寸约为 300 或 400 像素。它在数据网格周围呈现垂直和水平滚动条,这很丑陋。我想
这个问题已经有答案了: Equal width columns in CSS Grid (11 个回答) 已关闭 2 年前。 使用 CSS Grid,当您不知道会有多少个子项时,如何将所有子项保留在一
我想使用 CSS Grid 的 grid-template-areas。 但问题是我正在使用的 CMS 添加了大量额外的包装器。有没有办法忽略额外的包装?因为它弄乱了漂亮的网格区域...... 我正在
在我的Grid中,当我单击“操作”按钮(下面的代码中显示的“删除和编辑”按钮)时,我需要弹出一个窗口,而不用警告消息提醒用户; 在下面的代码中,我正在使用HANDLER handler: button
这个问题已经有答案了: Equal width columns in CSS Grid (11 个回答) 已关闭 2 年前。 使用 CSS Grid,当您不知道会有多少个子项时,如何将所有子项保留在一
我需要模拟一个仓库,其中有几辆自动驾驶车辆在给定的布局上移动,并具有简单的优先级规则。根据我的理解,这个问题可以通过离散事件模拟(DES)轻松解决,我会使用 SimPy为了这。 我看到的问题是,我似乎
在 ASP.NET 中,我可以让用户控件在页面上的表格中占据多个单元格: 用户控件1: foo bar 第1页: 并且自动调整列宽以适应最大的用户控件。 这也可以在 WPF
我正在寻找一种方法来实时搜索我的网格+要过滤的复选框。我有一个包含学生的网格(照片和姓名)。我想要的是有一个复选框,可以过滤学生所在的不同类(class)。还有一个搜索栏,我可以在其中输入学生姓名。
我正在使用 jQuery 和 jQuery UI 构建一个 Web 应用程序。我陷入了僵局。我需要的是一个 jQuery 网格,它具有可编辑字段,并以某种方式在这些可编辑单元格之一上合并一个自动完成字
我想知道是否有其他 JavaScript 组件可以提供具有多个分组的网格表示。下面是jqGrid的截图我扩展了允许该功能,但它需要获取所有数据。我希望在扩展分组时加载数据。 另一个修改后的 jqGri
我一直在为我将在此处描述的 CSS 问题而烦恼: 在下面的示例 ( https://codesandbox.io/s/jjq4km89y5 ) 中,您可以看到一个可滚动的内容(紫色背景)和一个被左侧面
我是一名优秀的程序员,十分优秀!