我们使用BootCards。我有一个用于Morris.js图形的自定义控件。我已经找到了一种方法,可以从repeat控件的选定文档中获取数据。
我的问题是刷新另一个文档的图形。当我将自定义属性'ajaxload‘设置为'No’时,页面会刷新并显示my Graph。并非重复控件中的所有条目都更改了图形。所选项目跳到第一个项目。
我可以将morris.js的redraw或setdata函数放在哪里,这样就可以在不刷新的情况下使用AJAX函数。
谢谢!
<script
src="unp/raphael.min.js"
type="text/javascript">
</script>
<script
src="unp/morris.min.js"
type="text/javascript">
</script>
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
var chartDataCalc =
#{javascript:var chartData = [];
var val = docview1.getItemValueArray(compositeData.barvalue);
var name = docview1.getItemValueArray(compositeData.barname);
for (var i=0; i<name.length; i++) {
chartData.push( {label : name[i], value : val[i]});
}
return toJson(chartData)
};
var chartBar =
Morris.Bar({
element: #{javascript:compositeData.divid},
data: '',
xkey: 'label',
ykeys: ['value'],
labels: ['#{javascript:compositeData.barlabel}'],
resize: true,
redraw: true
});
chartBar.setData(chartDataCalc, 'True');
]]>
</xp:this.value>
</xp:scriptBlock>发布于 2014-11-13 17:13:22
如果我理解正确的话,您正在执行部分刷新以更新重复控件,然后希望在刷新发生后重新绘制。XPages有两种方法可以做到这一点:
https://stackoverflow.com/questions/26904773
复制相似问题