qlik sense 筛选器的下拉框的值被覆盖
0
筛选器是自己开发的组件。页面中放了两个筛选器,比如年份,月份。选年份的时候,实际上取数据后传到插件的是月份。月份的数据覆盖了年份的数据。
代码如下:
paint: function($element,layout) {
//add your rendering code here
console.log(layout);
var alldata=[];
var qlik = this;
var selectTitle;
$element.empty();
if($element.height()!=0 && $element.width()!=0){
var divStr = '<div class="mc-lollipop" style="height:'+$element.height()+'px;'+'width:'+$element.width()+'px;"></div>';
}else{
var divStr = '<div style="height:100%;width:100%;"></div>';
}
var table = $(divStr);
var promise = $element.append( table ).promise();
function getData(){
//console.log(myOption);
for(var r = 0; r < layout.qHyperCube.qDataPages[0].qMatrix.length; r++){
//console.log(layout.qHyperCube);
//console.log(JSON.stringify(layout.qHyperCube))
var value1 = layout.qHyperCube.qDataPages[0].qMatrix[r][0].qText;
alldata.push(value1);
}
if(layout.qHyperCube.qDimensionInfo.length == 2){
selectTitle = layout.qHyperCube.qDataPages[0].qMatrix[0][1].qText;
}else{
selectTitle = '请选择';
}
}
function myfunction(){
var mySelect = new mSelect();
getData();
var myOption = {
'data':[
{'type': selectTitle},
{'content':alldata}
]
}
mySelect.init({
//'dom': '#J_panelOne',
'option': myOption,
});
var fn = function dataDriven(index, layout) {
var qMatrix = layout.qHyperCube.qDataPages[0].qMatrix;
for(var q=0;q<qMatrix.length;q++){
var d = qMatrix[q];
//console.log(index);d[0].qElemNumber
if( d[0]['qText']==index){ //['slice'](0,-1)
d[0].qSelf = qlik;
d[0].qIndex = 0;
d[0].qSelf.backendApi.selectValues(d[0].qIndex,[d[0].qElemNumber],true);---这一句不能正确取到数据
}
}
}
mySelect.setClickCallback(fn, layout);
mySelect.setDom( table );
mySelect.render();
}
promise.done(myfunction);
}
代码如下:
paint: function($element,layout) {
//add your rendering code here
console.log(layout);
var alldata=[];
var qlik = this;
var selectTitle;
$element.empty();
if($element.height()!=0 && $element.width()!=0){
var divStr = '<div class="mc-lollipop" style="height:'+$element.height()+'px;'+'width:'+$element.width()+'px;"></div>';
}else{
var divStr = '<div style="height:100%;width:100%;"></div>';
}
var table = $(divStr);
var promise = $element.append( table ).promise();
function getData(){
//console.log(myOption);
for(var r = 0; r < layout.qHyperCube.qDataPages[0].qMatrix.length; r++){
//console.log(layout.qHyperCube);
//console.log(JSON.stringify(layout.qHyperCube))
var value1 = layout.qHyperCube.qDataPages[0].qMatrix[r][0].qText;
alldata.push(value1);
}
if(layout.qHyperCube.qDimensionInfo.length == 2){
selectTitle = layout.qHyperCube.qDataPages[0].qMatrix[0][1].qText;
}else{
selectTitle = '请选择';
}
}
function myfunction(){
var mySelect = new mSelect();
getData();
var myOption = {
'data':[
{'type': selectTitle},
{'content':alldata}
]
}
mySelect.init({
//'dom': '#J_panelOne',
'option': myOption,
});
var fn = function dataDriven(index, layout) {
var qMatrix = layout.qHyperCube.qDataPages[0].qMatrix;
for(var q=0;q<qMatrix.length;q++){
var d = qMatrix[q];
//console.log(index);d[0].qElemNumber
if( d[0]['qText']==index){ //['slice'](0,-1)
d[0].qSelf = qlik;
d[0].qIndex = 0;
d[0].qSelf.backendApi.selectValues(d[0].qIndex,[d[0].qElemNumber],true);---这一句不能正确取到数据
}
}
}
mySelect.setClickCallback(fn, layout);
mySelect.setDom( table );
mySelect.render();
}
promise.done(myfunction);
}
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
0 个回复