- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一位来自 Isomorphic 的顾问开始开发一个网络应用程序,并提供一个基础。对于应用程序导航至关重要的树形网格具有按需加载的节点。我需要弄清楚如何更改它以从一开始就加载所有子项。
这是 ds.xml 代码:
<DataSource serverType="sql" dbName="CSODatabaseCities"
ID="Sensor"
schema="dynamic"
tableName="sensor_data">
<fields>
<field name="nodeId" type="int" />
<field name="nodeName" type="text" />
<field name="number" type="int" />
<field name="title" type="text" />
<field name="multiplier" type="float" />
<field name="offset" type="float" />
<field name="latitude" type="float"/>
<field name="longitude" type="float"/>
<field name="controlUrl" type="text" />
<field name="structureType" type="text" />
<field name="sensorType" type="text" >
<valueMap>
<value ID="d">Depth</value>
<value ID="q">Flow</value>
<value ID="rg">Rain Gauge</value>
<value ID="t">Temperature</value>
<value ID="v">Velocity</value>
</valueMap>
</field>
<field name="criticalLow" type="float" />
<field name="criticalHigh" type="float" />
<field name="units" type="text" />
<field name="latestValue" type="float" title="Reading" format="#.###"/>
<field name="lastCollected" type="datetime" />
<field name="percentUtilization" type="float" format="##.##'%'" title="Utilization" />
<field name="percentUtilizationImageUrl" type="image">
<customSelectExpression>
CASE
WHEN percentUtilization < 0
THEN CONCAT('structure/', structureType, '_0.bmp')
WHEN percentUtilization > 100
THEN CONCAT('structure/', structureType, '_100.bmp')
WHEN structureType = 'raingauge' AND percentUtilization BETWEEN 0 AND 10
THEN CONCAT('structure/', structureType, '_10.bmp')
ELSE
CONCAT('structure/', structureType, '_', ROUND(percentUtilization, -1),'.bmp')
END
</customSelectExpression>
</field>
<field name="parentId" type="text" title="Group" />
<field name="sensorId" type="text" customSelectExpression="CONCAT('c',nodeId, '_', number)" />
<field name="isFolder" hidden="true" canFilter="false" customSelectExpression="false" />
</fields>
<operationBinding operationType="fetch" operationId="fetchByParentGroup">
<script language="groovy"><![CDATA[
if (criteria.get('parentId', '/') == '/') {
dsRequest.setOperationId('fetchSensorGroups');
} else {
dsRequest.setOperationId(null);
}
return dsRequest.execute();
]]></script>
</operationBinding>
<operationBinding operationType="fetch" operationId="fetchSensorGroups" >
<selectClause>'/' AS parentId, TRIM(descr) AS sensorId, TRIM(descr) AS title, true AS isFolder, COUNT(*) AS sensorCount</selectClause>
<tableClause>${rawValue.schema}.inodes</tableClause>
<whereClause>
sensType1 != 'No Sensor'
OR sensType2 != 'No Sensor'
OR sensType3 != 'No Sensor'
OR sensType4 != 'No Sensor'
</whereClause>
<groupClause>descr</groupClause>
</operationBinding>
<operationBinding operationType="fetch" qualifyColumnNames="false">
<tableClause>
(
SELECT TRIM(i.descr) AS parentId, i.id AS nodeId, i.name AS nodeName,
1 AS number, i.sensType1 AS title, i.a1 AS multiplier, i.b1 AS offset,
i.lat AS latitude, i.lon AS longitude, i.controlURL as controlUrl,
s.structure_type_s1 AS structureType, s.sensor_type_s1 AS sensorType,
s.critical_low_s1 AS criticalLow, s.critical_high_s1 AS criticalHigh,
s.sensor1_units AS units, lv.sens1 AS latestValue, lv.time AS lastCollected,
(lv.sens1 / s.critical_high_s1) * 100 AS percentUtilization
FROM #schema.inodes i
INNER JOIN #schema.inodes_structure_data s
ON i.id = s.id
LEFT JOIN #schema.inodes_latest_values lv
ON i.id = lv.node_id
WHERE i.sensType1 != 'No Sensor'
UNION
SELECT TRIM(i.descr) AS nodeGroup, i.id AS nodeId, i.name AS nodeName,
2 AS sensorNumber, i.sensType2 AS title, i.a2 AS multiplier, i.b2 AS offset,
i.lat AS latitude, i.lon AS longitude, i.controlURL as controlUrl,
s.structure_type_s2 AS structureType, s.sensor_type_s2 AS sensorType,
s.critical_low_s2 AS criticalLow, s.critical_high_s2 AS criticalHigh,
s.sensor2_units AS units, lv.sens2 AS latestValue, lv.time AS lastCollected,
(lv.sens2 / s.critical_high_s2) * 100
FROM #schema.inodes i
INNER JOIN #schema.inodes_structure_data s
ON i.id = s.id
LEFT JOIN #schema.inodes_latest_values lv
ON i.id = lv.node_id
WHERE i.sensType2 != 'No Sensor'
UNION
SELECT TRIM(i.descr) AS nodeGroup, i.id AS nodeId, i.name AS nodeName,
3 AS sensorNumber, i.sensType3 AS title, i.a3 AS multiplier, i.b3 AS offset,
i.lat AS latitude, i.lon AS longitude, i.controlURL as controlUrl,
s.structure_type_s3 AS structureType, s.sensor_type_s3 AS sensorType,
s.critical_low_s3 AS criticalLow, s.critical_high_s3 AS criticalHigh,
s.sensor3_units AS units, lv.sens3 AS latestValue, lv.time AS lastCollected,
(lv.sens3 / s.critical_high_s3) * 100
FROM #schema.inodes i
INNER JOIN #schema.inodes_structure_data s
ON i.id = s.id
LEFT JOIN #schema.inodes_latest_values lv
ON i.id = lv.node_id
WHERE i.sensType3 != 'No Sensor'
UNION
SELECT TRIM(i.descr) AS nodeGroup, i.id AS nodeId, i.name AS nodeName,
4 AS sensorNumber, i.sensType4 AS title, i.a4 AS multiplier, i.b4 AS offset,
i.lat AS latitude, i.lon AS longitude, i.controlURL as controlUrl,
s.structure_type_s4 AS structureType, s.sensor_type_s4 AS sensorType,
s.critical_low_s4 AS criticalLow, s.critical_high_s4 AS criticalHigh,
s.sensor4_units AS units, lv.sens4 AS latestValue, lv.time AS lastCollected,
(lv.sens4 / s.critical_high_s4) * 100
FROM #schema.inodes i
INNER JOIN #schema.inodes_structure_data s
ON i.id = s.id
LEFT JOIN #schema.inodes_latest_values lv
ON i.id = lv.node_id
WHERE i.sensType4 != 'No Sensor'
) sensor_data
</tableClause>
</operationBinding>
<operationBinding operationType="add" requires="false" />
<operationBinding operationType="remove" requires="false" />
<operationBinding operationType="update" requires="false" />
</DataSource>
以下是与设置树形网格相关的代码:
Tree tree = new Tree();
tree.setModelType(TreeModelType.PARENT);
tree.setRootValue("/");
tree.setIdField("sensorId");
treeGrid.setFetchOperation("fetchByParentGroup");
//treeGrid.setLoadDataOnDemand(false);
treeGrid.setDataProperties(tree);
treeGrid.setSort(new SortSpecifier("title", SortDirection.ASCENDING));
treeGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
treeGrid.setShowPartialSelection(true);
treeGrid.setCascadeSelection(true);
treeGrid.setNodeIcon("[SKINIMG]SchemaViewer/simpleType.png");
treeGrid.setFolderIcon("[SKINIMG]SchemaViewer/complexType.gif");
treeGrid.setShowOpenIcons(false);
treeGrid.setShowDropIcons(false);
treeGrid.setClosedIconSuffix("");
/*
* Load selected children on demand and update listPane with currently
* selected items
*/
treeGrid.addSelectionUpdatedHandler(new SelectionUpdatedHandler() {
@Override
public void onSelectionUpdated(SelectionUpdatedEvent event) {
final TreeNode updated = treeGrid.getRecord(treeGrid.getEventRow());
final TreeNode[] children = treeGrid.getTree().getChildren(updated);
if (updated.getAttributeAsBoolean("isFolder") && children.length == 0) {
treeGrid.getData().loadChildren(updated, new DSCallback() {
@Override
public void execute(DSResponse dsResponse, Object data,
DSRequest dsRequest) {
treeGrid.selectRecords(dsResponse.getData());
}
});
} else {
RecordList selected = new RecordList(treeGrid.getSelectedRecords());
listGrid.setData(selected.findAll(new AdvancedCriteria("isFolder",
OperatorId.NOT_EQUAL, true)));
}
listGrid.selectRecord(0);
}
});
我已经尝试了几个小时来解决这个问题,但我一生都无法弄清楚如何保持相同的外观(分组)并从一开始就加载所有传感器。
这是当前外观的图像,在展开父级之前不会获取传感器。
任何对这个主题的启发将不胜感激。
最佳答案
setLoadDataOnDemand
方法是从一开始就加载所有子项的好方法:
treeGrid.setLoadDataOnDemand(Boolean.FALSE);
关于java - SmartGWT TreeGrid 禁用延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920647/
对于我的项目,我有一个要求,我必须实现一个复杂的网格结构。网格将有一些具有值/子值层次结构的行,必须像树结构一样显示。我用 SlickGrid 做了一个 POC,但发现网格不如像 DHTMLX 这样的
我需要一种在treegrid的网格列中编辑值的功能。只是将编辑器添加到列的配置中并没有帮助。我正在使用ExtJs4树面板组件。 有任何想法吗? 最佳答案 是的,它存在。 我建议使用最新版本,当前版本为
我使用 Vaadin 创建了一个包含单个 TreeGrid 的简单 Web 应用程序。显示了 TreeGrid,但没有用于展开或折叠根元素(“2010 年”或“2011 年”)的句柄,尽管有子元素。当
我正在试验 jqGrid treegrid 功能。谁能解释为什么“expandNode”方法在此示例中不起作用? (在 Chrome 和 JQ 1.4.2 下测试)。 注意 1:我无法使用任何 展开或
有没有办法向 TreeGrid 添加复选框? (瓦丁8.1) 我尝试使用下面的代码,但是当我选择父节点时,它不会自动选择其所有子节点。 treeGrid.setSelectionMode(Select
我有一个 ExtJS TreeGrid,我正在尝试向特定列添加自定义渲染器。不幸的是它不起作用 - 事件没有被触发,也没有发出警告。我也找不到 TreeGrid 的 API。有没有其他人经历过这种情况
我用谷歌搜索并没有找到任何关于 extjs TreeGrid 的鼠标悬停事件示例的信息。我试过了 exTree.on('mouseover', function(node,event){ al
我需要这样的东西: (我需要 TreeView 和 ListView 方面。即 Hirearchy 和 Columns。) 但是,我在 WPF 中需要它。这是内置的东西,还是我必须自己构建它? 我认为
我有一位来自 Isomorphic 的顾问开始开发一个网络应用程序,并提供一个基础。对于应用程序导航至关重要的树形网格具有按需加载的节点。我需要弄清楚如何更改它以从一开始就加载所有子项。 这是 ds.
我使用 jqGrid 来构建一些大树。现在我想记住cookie中展开和折叠的节点 所以我想捕获展开和折叠事件。我在手册中找不到它 所以我是这样解决的 grid.find("div.treeclick"
如何为 dojox.grid.TreeGrid/LazyTreeGrid 中的某些列设置图标? 在 dijit.Tree 中,我可以重载 getIconClass 方法来完成它。 最佳答案 您可以为此
有没有办法在新的 extjs 小部件 TreeGrid 中包含一个复选框列?将节点属性标记为 false/true 只是不起作用,因为它是用于 TreePanel。 干杯 最佳答案 我修改了 Ext.
我正在创建一个带有树形 GridView 的 JqGrid,jqgrid 实际上“作为表格”工作,但它不能作为树工作我将在下面向您展示我的代码 function doTable1(GridData)
有没有办法在树网格的子级别上应用替代行 css? 目前treePanel viewConfig 上的stripeRows 配置只是使所有内容变成灰色和白色,但是很难区分子行和父行。 理想情况下,我想让
我正在使用 jqgrid treegrid 在 expand 事件上远程加载数据。它正在快速检索数据,但在客户端加载和折叠节点需要时间,它在 IE8 上给出停止脚本错误。在 FF 和 Chrome 上
我喜欢using jqGrid treegrid但我绝对需要一个功能,那就是卡住列。有没有类似品质的产品支持冷冻柱。我知道jqgrid支持常规网格中的卡住列(但不支持树网格) 最佳答案 不是开箱即用的
我正在使用jqwidgets tree grid 我正在尝试根据以下要求为单元格编辑器实现 onchange 监听器 在更改特定行中的单元格值时,它应该对该特定行中的其他单元格进行更改。 到目前为止我
我有这个用例: 我得到了所有客户。 对于每个客户,我都想得到他的收据。 对于每张收据,我想获取所有 ShoppingItems。 从示例中,我可以看到如果我有相同类型的对象层次结构,TreeGrid
我需要在使用文件夹的“+”号伸展树(Splay Tree)节点时获取树节点的子记录。如果任何特定节点没有子节点,“+”号应该消失。这个要求和link中的要求类似。 但这对我来说有些不起作用。仅父节点显
我在设计某个树形网格的样式方面已经走了很长一段路,试图让它看起来不像一个树形网格:D我已经删除了连接线、打开/关闭按钮、图标,只包含文本和缩进。 但是,由于某种原因,当我将鼠标悬停在一行上时,背景仍然
我是一名优秀的程序员,十分优秀!