.Net将“__doPostBack”添加到javaScript onClick事件中......为什么?

时间:2010-04-23 14:20:00

标签: c#

通常,.NET通过使按钮为type =“submit”来处理按钮上的回发事件:

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

但是,我最近碰到了一种情况,即.NET通过输入一个type =“button”来处理回发,然后添加一个javaScript onClick事件来执行“__doPostBack()” - 所以你结束了这个:

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

此问题是尝试向点击添加确认消息。所以在第二种情况下,我最终得到了这个:

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

当然,在上面的场景中,回发永远不会发生。

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

由于

3 个答案:

答案 0 :(得分:3)

您需要输出如下:

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

如果确认为真或假,则返回它,您将不会执行回发。但是如果你只是假的,你应该没事。

答案 1 :(得分:0)

__ doPostBack使.net能够添加额外的功能,例如客户端验证检查。如果需要这样做,它就会这样做。

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

答案 2 :(得分:0)

答案是:

.Net在ajax场景中工作时在onClick事件中使用__doPostBack(...)。