选中复选框时{asp}锁定网格

时间:2016-07-20 22:11:08

标签: asp.net vb.net checkbox

我有一个网格,其中包含一个带有Autopostback = yes的复选框控件,而CheckChanged调用vb.net代码中的例程,该例程使用复选框值更新记录。单击复选框时,需要一两秒钟才能运行代码并将控制权返回给网页。我有一些用户一个接一个地点击几个复选框,所以程序没有被正确调用,他们正在获得更新记录的大杂烩。现在我的解决方案是让他们等到页面刷新然后再点击下一页。漂亮的lamo。有没有人有任何建议可以解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以编写一个小jQuery函数,以便在检查后立即暂时隐藏您的复选框。

可能会稍微扩展下面的代码以向用户显示<div id="loading">Loading...</div>或加载.gif图片enter image description here,以便他们知道您的网页正在处理中并且不会感到沮丧:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#" + "<%: CheckBox1.ClientID %>").change(function () {
            if (this.checked) {
                $(this).hide()
            }
        });
    });
</script>

答案 1 :(得分:0)

非常感谢丹尼斯!你的解决方案终于让我学习了jQuery(我想做一段时间)并帮助我按照我想要的方式工作。

当网格加载所有复选框时显示其值。单击一个时,下面的jquery运行并将它们全部隐藏起来。我在asp复选框控件上有一个OnCheckedChanged事件,它调用程序并更新单击的记录,当网格再次加载时,所有复选框都显示正确的值。太酷了!

<script src="../Scripts/jquery-3.1.0.js"></script>
<script type="text/javascript">
    $(document).ready(function (){
        $("input:checkbox").click(function () {
            $("input:checkbox").hide();
        });
    });
</script>