我有CheckedChanged事件处理程序,它在选中复选框时从网格视图中隐藏一行。现在,当我取消选中复选框时,什么也不会发生。实际上,我希望在取消选中复选框时隐藏的行可见。因此,我希望在取消选中复选框时发生相反的情况。目前,事件处理程序确实隐藏了该行,但我希望在取消选中复选框时该行重新出现
复选框:
<div class="row mt-4 mb-2" style="width: 50%; margin: auto;">
<div class="col-md-12">
<div class="check-label-Prof-Clients" >
<asp:CheckBox ID="chkProfClients" class="check-trading" runat="server" Enabled="true" AutoPostBack="true"
ViewStateMode="Enabled" EnableViewState="true" Checked="false" OnCheckedChanged="chkProfClients_CheckedChanged"/>
<label class="form-check-label" style="font-size: 14px; font-weight: 400;" for="chkProfClients">
Only Show Profitable Clients
</label>
</div>
</div>
</div>
复选框CheckedChanged事件处理程序:
protected void chkProfClients_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= gridProfitMargin.Rows.Count - 1; i++)
{
var profitValue = Convert.ToDouble(gridProfitMargin.Rows[i].Cells[13].Text);
if (profitValue <= 0)
{
gridProfitMargin.Rows[i].Visible = false;
}
else
{
gridProfitMargin.Rows[i].Visible = true;
}
}
}
我设置了“Autopostback = true”,但取消选中复选框时仍然没有任何React
1条答案
按热度按时间dgiusagp1#
您运行了一个循环,但没有检查复选框是选中还是未选中。
因此,您还需要检查复选框的状态,如果复选框= true,则代码和逻辑必须不同于复选框未选中时的情况。
所以,然后这个:
我想你可以把代码缩短一点,这样说:
但是,这归结为你在这里发现什么更具可读性。
尝试第一个,这样,网格视图的每一行都有一个循环,但是你没有考虑复选框是否被选中(真)。