这可能很简单,但是,当页面有效时,按钮文字和启用状态不会改变。
我在网络表单上有一个按钮,以及保存点击事件后面的代码:
if (Page.IsValid) {
btnSave.Enabled = false;
btnSave.Text = "Saving, please wait...";
// Save method, etc...
}
答案 0 :(得分:2)
您首先设置Button Enabled状态和Text,然后运行保存方法。
这一切都发生在服务器端,在按钮单击引起的请求中。在您运行Save方法之前,客户端浏览器不会收到完整的响应。
如果您希望在运行Save方法之前更改Button,则必须使用JavaScript在客户端执行此操作。
答案 1 :(得分:0)
我猜你试图禁止用户在处理过程中反复点击“保存”按钮。
但是代码是在服务器端编写的,浏览器最后只会得到响应。 要实现您要执行的操作,您需要在客户端禁用该按钮。
这可以使用javascript和处理按钮的onClientClick事件来完成。
阅读:http://encosia.com/disable-a-button-control-during-postback/
<asp:Button runat="server" ID="BtnSubmit"
OnClientClick="this.disabled = true; this.value = 'Submitting...';"
UseSubmitBehavior="false"
OnClick="BtnSubmit_Click"
Text="Submit Me!" />
注意:这适用于完整的回发,而不适用于启用ajax的方案。
编辑:试试这个
<asp:Button ID="Button1" UseSubmitBehavior="false"
runat="server" Text="Button" OnClientClick="DisableAfterValidation(this)" OnClick="Button1_Click" />
<script>
function DisableAfterValidation(btn) {
if (typeof (Page_ClientValidate) == 'function') {
var isPageValid = Page_ClientValidate();
if (isPageValid) {
btn.disabled = true;
btn.value = "please wait...";
}
}
}
</script>