问题描述
我在一个页面上有 12 个按钮,上面有这样的文字:0+12、1+11、2+10 等等,直到 11+1。这是几个月。单击每个按钮会显示一个带有一些选项卡的弹出窗口。在第一个选项卡上,有一个 12 列的网格,我们可以将其分为三个部分:actual、provk、frc。每列的数量取决于单击按钮的文本。 F.e.如果我们点击 2+10,那么我们应该有 2 个实际列,4 个 provk 列(provk 列总是 4,如果实际列数小于或等于 8)和 6 个 frc 列。
private void placeLevelCheckBox_CheckedChanged(object sender,EventArgs e)
{
// Here sender is the checkBox clicked. Just need to cast it
int activateLimit = Convert.ToInt32((sender as CheckBox).Tag);
HandleCheckBoxes(activateLimit);
}
通过相应的输入属性,我将值传递给网格组件(首先传递给弹出窗口,然后传递给选项卡组件)。然后我用 buttonClick(frc) {
this.version=frc.version;
this.actPeriods = +frc.version.split('+')[0];
this.provkPeriods = (12 - this.actPeriods) >= 4 ? 4 : 12 - this.actPeriods;
this.frcPeriods = +frc.version.split('+')[1] - this.provkPeriods;
this.actValues = [];
this.provkValues = [];
this.frcValues = [];
for (let i = 1; i <= this.actPeriods; i++) {
this.actValues.push({ caption: i,datafield: 'p' + i })
}
for (let i = 1; i <= this.provkPeriods; i++) {
this.provkValues.push({ caption: this.actPeriods + i,datafield: 'p' + (this.actPeriods + i) })
}
for (let i = 1; i <= this.frcPeriods; i++) {
this.frcValues.push({ caption: this.actPeriods + this.provkPeriods + i,datafield: 'p' + (this.actPeriods + this.provkPeriods + i) })
}
this.detailsPopup.instance.show();
}
构建这样的列:
*ngFor
基本上,它有效,但我有一个问题。 F.e.如果我单击按钮 3+9,网格将显示 3 个实际列、4 个 provk 列和 5 个 frc 列。没关系。如果我点击 4+8,我得到的不是 4 个实际列、4 个 provk 列和 4 个 frc 列,但我得到了 3+9 的先前结果。如果我单击与 3+9 或 4+8 不同的按钮,则会得到正确的结果,就好像我单击了 4+8 按钮一样。所以我得到了正确的结果“一键后”。
我准备了一个 stackblitz 示例来演示该问题。两个注意事项:在新窗口中打开应用程序,如果首先显示弹出窗口,请单击向下箭头以获取选项卡和网格。
这是为什么?所需的结果是,我始终获得正确数量的列,具体取决于单击按钮。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)