如何限制用户在复选框列表中选中/取消选中其他复选框,直到上次单击的SelectedIndexChanged未完成为止



我动态创建了一个CheckBoxList。当用户选中/取消选中任何复选框时,将为该特定复选框运行"OnSelectedIndexChanged"事件。此事件有点长,涉及数据库访问和对全局十进制变量进行某些计算。在该事件未完成之前,我不希望用户选中/取消选中此CheckBoxList中的任何其他复选框,因为这会影响计算。如何限制用户这样做?在事件未完成之前,如何禁用完整的复选框列表?请注意,根据某些情况,列表中的某些复选框可能已被禁用。

我成功地添加了一个客户端onclick脚本,如下所示`

<div id="myCBL" style="width: 90%; display: inline-block;">
<asp:CheckBoxList ID="Payees" runat="server" AutoPostBack="True" OnSelectedIndexChanged="LstPayees_SelectedIndexChanged" RepeatLayout="Flow" CssClass="ListBoxinline" onclick="WaitForEvent()">
</asp:CheckBoxList> </div>

添加的脚本如下:

function WaitForEvent() {
var nodes = document.getElementById("myCBL").getElementsByTagName('*');
for (var i = 0; i < nodes.length; i++) {
nodes[i].disabled = true;
}

在完成OnSelectedIndexChanged方法之后,复选框本身就会被启用。

最新更新