我有大约150页的保存按钮。当用户点击保存按钮时,我应该在点击后禁用该按钮。这样用户就不会再次点击保存按钮了。
protected void Button1_Click(object sender, EventArgs e)
{
// right now once the user clicks the save button
Button1.Enabled = "false"
}
现在我这样做。有没有更好的解决方案你可以提供我改进代码在这里会很棒。
谢谢
答案 0 :(得分:3)
我认为实现这一目标的最佳选择是使用javascript。如果您正在使用jQuery(我甚至可以开始推荐),那么您可以将javascript放在您的母版页中。您只需要找到一种为保存按钮创建选择器的方法。像这样:
$(document).ready(function(){
$('.saveButton').bind("click", function(e) {
$(this).attr("disabled", "true");
return true; //causes the client side script to run.
});
});
在这个例子中,我假设所有的保存按钮都有css类“.saveButton”,但你可以找到自己选择按钮的方法。
干杯!
答案 1 :(得分:2)
您也可以尝试通过Javascript停用它。
答案 2 :(得分:1)
在允许页面继续回发之前,您需要使用JavaScript在单击链接后更改链接以防止将来单击处理。一个天真的尝试,
<asp:LinkButton runat="server" id="button" OnClientClick="this.href='#'">
Click - doesn't quite work
</asp>
这可以成功阻止连续点击触发回发,但它也可以防止第一次点击触发回发。需要更多的逻辑才能使其正常工作。在代码隐藏中,我抓住了实际的回发JavaScript代码片段并将其用于某种逻辑。
protected void Page_PreRender(object sender, EventArgs e)
{
button1.OnClientClick = string.Format(
"if(this.getAttribute('disabled')) return false; {0}; this.setAttribute('disabled','disabled'); return false;",
Page.ClientScript.GetPostBackEventReference(button1, null));
}
在HTML模板中:
<asp:LinkButton runat="server" id="button" >
Click - does not allow multiple postbacks
</asp>
你可以用一些CSS来修饰它,在这一点上我会建议包括jQuery,所以你的代码更简洁(由于它的命令链)。
答案 3 :(得分:0)
您需要做的就是使用一些JavaScript,并在客户端单击时禁用它。
点击事件会在回发时触发。
答案 4 :(得分:0)
在用户点击后附加javascript以禁用按钮的最简单方法是(在页面onLoad事件中):
myButton.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, null) + ";");
但是如果在许多页面上重复按钮,您可以创建嵌套母版页并在其中放置保存按钮,或者从实现此禁用功能的类继承您的页面。此外,你可以&#34;扫描&#34;对于您想要在单击后禁用的控件!