2010-07-13 58 views

回答

8

做回发通过JavaScript你可以调用以下服务器端为您创建的JavaScript代码:

string postBackJavascript = Page.GetPostBackEventReference(yourControl); 

这将返回__doPostBack JavaScript代码作为一个字符串,你需要将它放在您的页面连接到的东西,或者你可以直接调用__doPostBack对自己有:

__doPostBack(yourControlId,''); 

如果你做自己,而不是使用Page.GetPostBackEventReference然后确保获得ClientID的控制触发验证,如:

__doPostBack('<%= yourControl.ClientID %>',''); 

编辑:后重新阅读你的问题,你没有说你想触发基于ASP.NET控件回发,你可能甚至不使用任何ASP.NET控件所以在这种情况下,如果你想只是做了回发香草,你可以这样做:

document.forms[0].submit(); 
+0

好,因为你问..我试图提交使用ASP.Net按钮。 现在我不能让按钮不提交。我有OnClientClick =“validate(); return false;”但似乎没有工作。有任何想法吗?? – bill 2010-07-14 00:15:33

+0

@bill应该工作...尝试删除'validate()',看看是否只是'返回false;'的作品。我的预感是你在'validate()'中做了一些事情,因为它看起来是正确的,这导致了这种行为。也许开始另一个问题,并包括你的'validate()'代码。 – Kelsey 2010-07-14 03:35:28

+0

您可能在取消按钮行为时遇到问题,因为事件堆叠。所以原来那里的回传会在你的javascript之前被解雇。所以你需要先清除原来的事件,然后再把你放在最前面。否则,该按钮将始终提交。 – Simon 2010-10-10 22:01:53

3

如果您想回传,可以使用ASP.NET放入<form>__doPostBack()。看看这个link。如果您想提交另一个表单,请在表单元素上调用.submit()

3

它应该是越简单

document.forms[0].submit(); 

提供d,你只有一个表单在页面上,否则你需要使用表单名称而不是索引0.