`
didasoft
  • 浏览: 164813 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

转贴:防止重复提交

阅读更多

 

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(
"if (typeof(Page_ClientValidate) == 'function') { ");
sb.Append(
"if (Page_ClientValidate() == false) { return false; }} ");
sb.Append(
"this.value = 'Please wait';");
sb.Append(
"this.disabled = true;");
sb.Append(
this.Page.GetPostBackEventReference(this.Button1));
sb.Append(
";");
this.Button1.Attributes.Add("onclick", sb.ToString());


<script type="text/javascript">
function DisableControl(controlId)
{
  document.getElementById(controlId).disabled 
=true;
}

 
function DisableControl_SetTimeout(controlId,interval)
{
  setTimeout(
"DisableControl('" +controlId + "')",interval);
}

 
function btnSave_Click(control)
{
  DisableControl_SetTimeout(control.id,
100);
}

</script>

Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object,_
        
ByVal e As System.EventArgs) HandlesMyBase.Load
 
  
If Not Me.Page.IsPostBack Then
   
Me.btnSave.Attributes.Add("onclick",_"btnSave_Click(this);")
  
End If
End Sub

<%@ Page Language="VB" %>
<script runat="server">
Dim counter As Integer
Sub Page_Load()
If Session("counter") Is Nothing Then
counter = 0
Else
counter = CInt( Session("counter") )
End If
SafeButton.Attributes.Add("onclick", "disableButton();return true")
End Sub

Sub Process_Click(sender As Object, e As EventArgs)
counter += 1
Session("counter") = counter
Dim i As Long
' 2-second delay
Dim endTime As DateTime = DateTime.Now.AddSeconds(2)
While DateTime.Now < endTime
End While
Label1.Text = counter.ToString()
Label2.Text = DateTime.Now.ToString()
End Sub

Sub ClearCounter_Click(sender As Object, e As EventArgs)
Session("counter") = 0
Label1.Text = Session("counter").ToString()
End Sub
</script>
<html>
<head>
<style>
BODY {
FONT-SIZE: 10pt; FONT-FAMILY: verdana; arial:
}
H2 {
FONT-SIZE: 14pt; FONT-FAMILY: verdana; arial: font-weight:bold
}
</style>
<script language="javascript">
function disableButton()
{
document.form1.SafeButton.style.visibility = "hidden";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h2>Testing Multiple Posting
</h2>
<p>
Process count:
<asp:Label id="Label1"
runat="server" forecolor="Red" font-bold="True">
</asp:Label>
</p>
<p>
Last clicked: <asp:Label id="Label2" runat="server"></asp:Label>
</p>
<p>
The buttons run a process that takes 2 seconds to run.
</p>
<p>
You can click this button multiple times during processing, potentially
resulting in the process running multiple times:
</p>
<p>
<asp:Button id="UnsafeButton"
onclick="Process_Click"
runat="server"
Text="Unsafe Button">
</asp:Button>
&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<p>
You can click this button only once to run the process:
</p>
<p>
<asp:Button id="SafeButton"
onclick="Process_Click"
runat="server"
Text="Safe Button">
</asp:Button>
</p>
<p>
<asp:LinkButton id="ClearCounter"
onclick="ClearCounter_Click"
runat="server" Text="Clear Counter">
</asp:LinkButton>
</p>
<span id="span1"></span>
</form>
</body>
</html>

 

<script language="javascript">
function disableButton()
{
   message.innerText 
= "Please wait "
   document.form1.SafeButton.style.visibility 
= "hidden";
}


</script>

function disableButton(){  window.setTimeout('disableAfterTimeout()',0);}function disableAfterTimeout(){   document.form1.SafeButton.disabled = true;}


<%@ Page Language="VB" %>
<script runat="server">
Protected sessionGuid As String
Protected viewstateGuid As String
Protected doublePost As Boolean
Protected pageCounter As Integer

Sub Page_Load()
If Session("pageCounter") Is Nothing Then
pageCounter = 0
Session("pageCounter") = 0
Else
pageCounter = CInt(Session("pageCounter"))
End If

Dim newGuid As String = System.guid.NewGuid.ToString
If IsPostBack Then
sessionGuid = Session("guid").ToString()
viewstateGuid = Viewstate("guid").ToString()
If sessionGuid = viewstateGuid Then
doublePost = false
Else
doublePost = true
Response.Write("Page has already been submitted.")
End If
End If
Viewstate("guid") = newGuid
Session("guid") = newGuid
End Sub

Sub Button1_Click(sender As Object, e As EventArgs)
System.Threading.Thread.Sleep(2000) ' Fake a long process
If Not DoublePost Then
pageCounter += 1
Session("pageCounter") = pageCounter
End If
Label1.Text = pageCounter.ToString()
End Sub

</script>

 


<html>
<body>
<form runat="server">
<p>
<asp:Button id="Button1" onclick="Button1_Click" runat="server"
Text="Button"></asp:Button>
</p>
<p>
<asp:Label id="Label1" runat="server">Label</asp:Label>
</p>
</form>
</body>
</html>
分享到:
评论

相关推荐

    转贴:随心所欲的Web页面打印技术

    【正文】 随心所欲的Web页面打印技术是针对基于B/S架构的应用程序中客户端页面打印问题的一种解决方案。传统的Web页面打印方式,如使用IE的内置打印功能或水晶报表,往往无法满足特定的排版和定位需求。...

    转贴:利用钩子技术控制进程创建.txt

    根据提供的文件信息,可以看出标题与描述均指向了“利用钩子技术控制进程创建”的主题,但实际内容似乎并未直接涉及这一技术细节,而是包含了大量非结构化和个人化的文本信息。因此,下面将基于标题和描述中提及的...

    易语言源码动网转贴.rar

    8. **安全防护**:防止恶意用户滥发帖子,可能需要设置转发频率限制,或者对转发内容进行审核,这些都需要在源码中实现。 9. **API接口调用**:如果动网是一个开放平台,那么转贴功能可能通过调用其他网站的公开API...

    转贴:四十岁的男人要像孩子一样养.doc

    【知识点详解】 1. **情感需求的重视**:40岁的男性在工作和生活中积累了丰富的经验,他们开始渴望更多的家庭温暖和情感互动。他们会喜欢与家人,尤其是孩子一起度过时光,寻找简单快乐,如游戏、亲子活动等。...

    ZZ: 时间管理方法(转贴)

    【时间管理方法(转贴)】 时间管理是个人和团队高效工作的关键,它涉及到如何规划、组织和优化日常活动,以便在有限的时间内完成更多的任务并实现目标。在这个快速发展的IT行业中,良好的时间管理能力可以帮助程序员...

    论坛专用屏蔽干扰码转贴工具

    在论坛交流中,有时为了防止恶意爬虫或者保护内容不被搜索引擎抓取,管理员会使用各种干扰码,如乱码、特殊字符等来混淆帖子的关键信息。这款工具就是为了帮助用户解除这些干扰,提升在论坛上的阅读和交互体验。 ...

    asp.net中的并发控制

    转贴:asp.net中的并发控制 并发控制的类型 通常,管理数据库中的并发有三种常见的方法: 保守式并发控制 开放式并发控制 最后的更新生效

    易语言动网转贴.rar

    "动网转贴"可能是基于易语言编写的一个功能模块或者工具,用于在论坛或者网站之间转移帖子数据。由于压缩包文件名为“易语言动网转贴.rar”,我们可以推测这可能是一个软件开发资源,包含了一些源代码、教程或者是...

    行业文档-设计装置-木器、玻璃用贴花纸生产及转贴方法.zip

    转贴过程中要特别注意防止气泡产生,以确保贴花的平整度和持久性。 4. 材料适应性:木器和玻璃材质的不同,决定了转贴方法的差异。对于木器,可能需要考虑木材的吸水性、表面处理方式等因素;而对于玻璃,可能需要...

    [转贴]软件测试 从零开始

    - **重复测试**:定期重复执行测试用例,确保软件的稳定性和可靠性。 - **代码审查**:定期进行代码审查,不仅可以发现潜在的错误,还可以提高代码质量和团队成员的编程技能。 ### 结论 软件测试是一项复杂而精细...

    电子政务-导电泡棉转贴装置.zip

    在“导电泡棉转贴装置”这个特定的场景下,我们可能是在讨论一种用于电子政务设备或系统中的特殊组件。 导电泡棉是一种具有导电性能的泡沫材料,通常用于电子设备的屏蔽、接地或防静电保护。在电子政务设备中,这种...

    BFC UBB转贴器

    由于现在流行的转贴工具都是基于浏览器的,转换速度比较慢,还得打开浏览器才能使用(同时受到浏览器版本限制)。 &lt;br&gt; 而这个小程序则完全不依赖于浏览器,以BFC采集器的UBB转换模块为基础,转换速度超快,...

    动网转贴.e.rar

    【标题】"动网转贴.e.rar"是一个压缩文件,很可能包含了有关动网论坛或社区的相关资源、数据或用户帖子的备份。动网是中国早期知名的网络论坛软件之一,提供了丰富的社区功能,允许用户发帖、回帖、互动等。这个...

    Html处理软件、转贴工具(源代码)

    去除Html中的干扰码等(样例中以轻之国度的干扰码为例) 配置文件语法: 方法类型(整数) 最大匹配长度(整数) 字符串1(删除开头) 字符串2(删除结尾) 方法类型: 1:删除单行 2:删除行与行之间的

    jquery的转贴功能实现

    在本主题中,我们将深入探讨如何利用jQuery实现“转贴”功能,这是一种常见的社交媒体分享功能,允许用户将网页内容轻松分享到各种社交网络。 首先,让我们了解一下jQuery的核心概念。jQuery通过一种简洁的语法提供...

Global site tag (gtag.js) - Google Analytics