通常,.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选择其中一个场景,有没有办法阻止第二个?
由于
答案 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(...)。