2010-04-23 155 views
4

Typically.NET通过使按钮类型=“提交”处理上的一个按钮后回到事件:.Net将“__doPostBack”添加到javaScript onClick事件...为什么?

<input type="submit" Text="Delete" /> 

不过,我最近碰到了的情况下.NET被处理后回使输入类型=“按钮”,然后添加一个JavaScript onClick事件做了“__doPostBack()” - 所以你最终这样的:

<input type="button" onClick="__doPostBack(...);" /> 

的问题,这是试图确认消息增加点击。所以在第二种情况下,我以这种方式结束:

<input type="button" onClick="return confirm('Are you sure?'); __doPostBack(...);" Text="Delete" /> 

当然,在上述情况下,回发将不会发生。

我想知道的是为什么.net选择其中一个场景,有没有办法阻止第二?

由于

回答

0

这个问题的答案是:

.NET使用的onClick事件__doPostBack(...)在Ajax场景中工作时。

0

的__doPostBack使达网络添加额外的功能,例如客户端验证检查。如果它需要这样做,它会这样做。

关于您的实现,您可以使用按钮的OnClientClick属性来设置任何其他脚本。

+0

不幸的是,在这种情况下使用OnClientClick不起作用。如果我想为按钮添加一个“return confirm('')”,它就像我在原始问题中发布的那样结束,并且回发被忽略。 – bugfixr 2010-04-23 14:28:47

3

你需要有这样的输出:

<input type="button" onClick="if(!confirm('Are you sure?')){return false};__doPostBack(...);" Text="Delete" /> 

通过让它返回如果确认是真的还是假的,你会不会执行回发。但是,如果你只是返回false,你应该没问题。

相关问题