我正在学习使用spotfire创建报告。你能帮我理解一下可行性吗?
是否可以根据之前的选择更改过滤器(过滤器必须根据前一部分进行更改)
例如:
我有一张下表,有三列。
Filter1 Filter2 Data
Name Name1 test1
Age Age1 test2
Location Location1 test3
我计划根据Filter1和Filter2列提供过滤器选项。
是否可以使用值" Filter1"创建下拉列表?和"过滤器2"? 是否可以根据第一个下拉选项修改过滤器选项列表。
例如。如果&#34; Filter1 &#34;在下拉列表中选择。过滤器选项列表应为&#34; 名称&#34;,&#34; 年龄&#34;,&#34; 位置< /强>&#34 ;.
如果&#34; 过滤器2 &#34;在下拉列表中选择。过滤器选项列表应为&#34; 名称1 &#34;,&#34; 年龄1 &#34;,&#34; 位置1 < /强>&#34 ;.
谢谢
答案 0 :(得分:1)
我们还可以通过以下步骤创建级联下拉列表。
感谢。
答案 1 :(得分:0)
我有一个利用JavaScript的解决方案,可以在隐藏的DIV之间有效切换。我不知道一种方法来操纵过滤器对象以及它通过API在文本区域中指向哪一列。如果有人确实知道我喜欢听的方式!
以下是我使用JS的解决方案:
右键单击文本区域,然后单击“编辑HMTL”。利用下面的HTML,修改您的HTML以匹配。您将希望将第一个DIV作为下拉列表,将SPAN作为标签显示下拉列表的属性,然后将最后两个DIVS(在我的情况下为LETTER和NUMBER)作为您的两个过滤器。确保DIV ID名称与您的列名完全匹配。
<DIV><SpotfireControl id="8dc9d8974bde445cab4c97d38e7908d6" /></DIV>
<SPAN id=docProp style="DISPLAY: none"><SpotfireControl id="1311015997cd476384527d91cb10eb52" /></SPAN>
<DIV id=LETTER style="DISPLAY: none"><SpotfireControl id="760ae9ffd71a4f079b792fb5f70ac8b4" /></DIV>
<DIV id=NUMBER style="DISPLAY: none"><SpotfireControl id="488ef4b1289440d5be24b0dd8cfc3896" /></DIV>
接下来我们将实现JS。为此,请单击编辑HTML中的+ JS按钮。 JS本身就在下面。您需要在前2个getElementById引用中更改LETTER和NUMBER的输入,我们将它们设置为display:none。
filter = function(){
input = $("#docProp").text().trim() //Take the text from our hidden label and trim it from any white space.
document.getElementById("LETTER").style.display = 'none'; //Reset DIV
document.getElementById("NUMBER").style.display = 'none'; //Reset DIV
document.getElementById(input).style.display = 'block'; //Set new display
}
//Run this function every 333ms or other length of time desired to update your filters.
setInterval(filter,333)
//Larger numbers mean slower response and better performance vs. faster response and worse performance. Tune as necessary.
或者不是每隔X毫秒扫描一次(可能会导致一些性能下降),您可以使用JS按钮手动运行它。例如$("#divIdForButtonPlacement").button().bind('click',filter)