Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript webform_DoPostBackWithOptions()的作用是什么?_Javascript_Asp.net - Fatal编程技术网

Javascript webform_DoPostBackWithOptions()的作用是什么?

Javascript webform_DoPostBackWithOptions()的作用是什么?,javascript,asp.net,Javascript,Asp.net,我有一个按钮声明如下: <asp:Button id=Send runat="server" EnableViewState="False" ToolTip="Email me this report" CssClass="Button" Text="Email me this report"> </asp:Button> <input type="submit" class="Button" title="Email me this report" id="

我有一个按钮声明如下:

<asp:Button id=Send runat="server" EnableViewState="False" 
ToolTip="Email me this report" CssClass="Button" Text="Email me this report">
</asp:Button>
<input type="submit" class="Button" title="Email me this report" 
id="ctl03_Toolbar_Send" onclick="javascript:WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions("ctl03$Toolbar$Send","", true, "", "";, false, false))" 
value="Email me this report" name="ctl03$Toolbar$Send">

但如果我在浏览器中检查元素,它会显示如下:

<asp:Button id=Send runat="server" EnableViewState="False" 
ToolTip="Email me this report" CssClass="Button" Text="Email me this report">
</asp:Button>
<input type="submit" class="Button" title="Email me this report" 
id="ctl03_Toolbar_Send" onclick="javascript:WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions("ctl03$Toolbar$Send","", true, "", "";, false, false))" 
value="Email me this report" name="ctl03$Toolbar$Send">

我想知道onclick事件来自哪里?它有什么作用

提前感谢您的帮助。

删除“EnableViewState=“False”,它应该使用默认回发


当您将button设置为not store state(不存储状态)时,它将改为使用此选项,该选项与页面上的页面加载javascript事件连接方式不同。

如果您为button服务器控件设置PostBackUrl属性,则表示它是跨页面发布,然后是asp.net framework而不是普通的u DoPostBack()添加“WebForm_DoPostBackWithOptions”。检查是否为此按钮设置了“PostBackUrl”属性

<asp:Button id=Send runat="server" EnableViewState="False" PostBackUrl="~/Page2.aspx"
ToolTip="Email me this report" CssClass="Button" Text="Email me this report">
</asp:Button>

请理解,在web服务器响应用户请求而输出的呈现HTML中没有“ASP.NET控件”这类内容。ASP.NET控件所做的所有工作都是以一种使服务器上的所有内容都按预期工作的方式呈现一些HTML。按钮控件发出“onclick”命令属性,以触发一些JavaScript,从而将表单数据发布回服务器(假设任何客户端验证程序都不阻止它)

正如我刚才提到的,使用此方法发送数据的原因是,为任何客户端脚本提供了先运行的机会,例如可以检查并查看是否有任何必填字段未填写的数据验证控件


基本上,除非您希望创建自己的ASP.NET服务器控件,否则您不必太担心IIS发出的最终响应到底是什么。熟悉正在发生的事情很好(我当然不是说您不应该确切地了解服务器控件是如何工作的),但是您不必非常熟悉ASP.NET正在进行的每一个客户端调用和参数,就可以开始了。

此外,如果页面上有一些验证控件,这也可能导致它。将按钮的CausesValidation属性设置为false

     <asp:button runat="server" ID="test" CausesValidation ="false" />


它的可能副本解释了参数。但我仍然不知道这个方法是如何添加的。我没有设置任何onclick属性。您也没有指定
type=“submit”
,id完全不同,
runat=“server”
不存在。我想您只需要意识到,当您键入
asp:Button
时,asp.net运行时会将其更改为HTML元素,以便浏览器进行解释。@jamice谢谢!!!但并非每个控件都有此事件。你知道这是什么原因吗?我是一个asp.net的新手。老实说,我清除了我大脑中所有关于网络表单的记忆。这是一件令人憎恶的事。在我的例子中,如果您刚开始使用asp.net MVC(google it!),那么问题来自一个asp.net验证程序,其EnableClientScript属性设置为“true”;将其设置为“false”解决了问题。