在GridView中单击后禁用按钮
本文关键字:按钮 单击 GridView | 更新日期: 2023-09-27 18:17:25
GridView code:
<asp:GridView runat="server" ID="grid1" AutoGenerateColumns="false" ShowHeader="true">
<Columns>
<asp:TemplateField HeaderText="Title">
<ItemTemplate>
<asp:HyperLink ID="hlTitle" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="Delete" runat="server" title="Delete" />
</ItemTemplate>
</asp:TemplateField>
我知道如何在RowCommand事件下禁用按钮,但我在这里发现的问题是按钮没有立即禁用-它在任务完成后被禁用。
我怎么能设置这个,所以用户只能点击按钮一次在GridView(也许对行它被点击,但这并不重要),它被禁用了吗?
对于那些渴望投票给我的人,请注意我的研究,我尝试过JQuery和Javascript,但它们也不起作用。但是,由于我不是100%熟悉这些语言,我想可能有另一个想法,这可能会让我头疼。如果没有,我很乐意尝试任何一种语言。
编辑1
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript">
function disableDel(delButton, evt) {
delButton.disabled = true;
}
</script>
</asp:Content>
和Gridview代码
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="Delete" runat="server" title="Delete" OnClientClick="disableDel(this, evt);"/>
</ItemTemplate>
</asp:TemplateField>
使用以下代码段
把JavaScript标签放到页面的Head块
<script type="text/javascript">
function disableDel(delButton) {
delButton.disabled = true;
}
</script>
<asp:Button ID="Delete" runat="server" title="Delete" OnClientClick="disableDel(this);" />
使用此脚本,您可以禁用页面上支持禁用属性/属性的任何控件。只需将this
作为参数传递给disableDel
JavaScript函数,例如
<asp:Button ID="Save" runat="server" title="Save" OnClientClick="disableDel(this);" />
<asp:Button ID="Edit" runat="server" title="Edit" OnClientClick="disableDel(this);" />
JavaScript函数只需要定义一次
我已经强制我的做回发,它成功地去到gridview的RowCommand事件。
$("input[type='submit']").on("click", function () {
var btn = $(this);
btn.prop("disabled", true);
btn.val("Submitting...");
__doPostBack(btn.attr('name'), "");
});
或者将UseSubmitBehavior设置为false,以使用ASP。. NET PostBack机制,然后添加OnClientClick事件。
<asp:LinkButton ID="Delete" runat="server" title="Delete" UseSubmitBehavior="false" OnClientClick="this.disabled = true; this.value = 'Submitting...';"/>