.NET服务器端按钮在客户端点击后禁用,服务端执行完事件后再次激活
.NET系统经常服务器在后台执行较复杂的操作未能及时响应客户端,此时客户端就会以为之前点的按钮无效再次点击又向服务器发起新的请求,产生恶性循环。
通过以下方法可将按钮失效,等服务器响应后重新激活:
思路:将该按钮隐藏,新增一个html按钮,点击后执行JS方法,点击后将按钮禁用,然后触发隐藏的服务器按钮的Click事件。在服务器端执行完后返回客户端,将html按钮重新激活。
客户端代码:
1 <script> 2 function doMyEvent(sender) { 3 sender.disabled = "disabled"; 4 document.getElementById("<%=btnExcel.ClientID%>").click(); 5 } 6 </script> 7 8 <table> 9 <tr> 10 <td>选择文件 11 <input class="inputtxt1" id="FileUpload" type="file" size="20" name="FileUpload" 12 runat="server" unselectable="on" style="width: 300px" /> 13 <input id="myBtn" type="button" value="导入Excel" class="btnbg" onclick="doMyEvent(this)" /> 14 <asp:Button ID="btnExcel" runat="server" OnClick="btnAddLib_Click" Style="display: none"></asp:Button> 15 </td> 16 </tr> 17 </table>
服务器端代码:
1 protected void btnAddLib_Click(object sender, System.EventArgs e) 2 { 3 //…………. 4 this.WriteAjaxMessage("document.getElementById('myBtn').disabled = '';"); 5 }
Yi只渴望成长的码农~