__doPostBack函数的含义是什么,何时使用?

时间:2011-03-21 09:58:30

标签: javascript asp.net postback submit

我在触发服务器端按钮点击事件时遇到问题所以我在网上找到了一个我应该做的事情

  <input type="submit" name="button" id="loginButton" value="Submit" 
                            class="button-orange" alt="Register" title="Register" runat = "server" onclick ="this.disabled=true;__doPostBack('loginButton','')"/>

我做到了,它有效,但我想知道发生了什么!

3 个答案:

答案 0 :(得分:5)

查看这篇文章:

Understanding the JavaScript __doPostBack Function

此方法用于将表单提交(回发)到服务器,并允许ASP.NET框架调用附加到引发回发的控件的相应事件处理程序。

您通常(在简单的场景中)不直接使用该方法 - 它由您放在页面上的控件在内部使用。

传递给此函数的参数存储在隐藏字段中,并由服务器端的ASP.NET框架选取,以便找到引发回发的控件。

答案 1 :(得分:4)

简单地说,它主要由具有AutoPostBack属性的控件使用

http://www.dotnetspider.com/resources/189-AutoPostBack-What-How-works.aspx

如果要为自定义控件实现自动后备,则需要实现 IPostBackDataHandler

答案 2 :(得分:2)

解决方案可能正在运行,但这不是一个真正的解决方案..更好的方法是找到按钮事件未触发的原因并修复问题的核心。

现在回答您的问题.. PostBack 是用于描述何时将表单提交(发布)回到同一页面的术语。就这么简单。

普通提交按钮已足够,但PostBack的一部分是能够识别哪个控件触发了它,这意味着点击了什么按钮或链接。

要做这样的事情ASP.NET会自动向表单添加隐藏字段,当点击应该导致PostBack的元素时,JavaScript代码用于将这些隐藏字段的值更新为正确的值,表明是什么点击 - 你传递的参数。

微软选择给JS功能提供的名称是__doPostBack - 它只是一个函数的名称,ASP.NET自动写入浏览器的普通JavaScript函数。

希望事情现在更清楚了。