2012-03-21 64 views
3

我尝试使用onserverclick同时在我的按钮dojotype。我可以同时使用dojotype和onServerClick吗?

请参阅此代码。

<button id="ButtonLogin" runat="server" onServerClick="ButtonLogin_OnClick" dojotype="dijit.form.Button" jsid="ButtonLogin" style="float: right; 
          padding: 5px 15px 0px 0px;"> 
          Login</button> 

所以基本上我有一次按钮点击(警报东西),将触发一个无效ButtonLogin_OnClick。 并且dojotype也会触发一个javascript(alert Something)。

<script runat="server"> 
void ButtonLogin_OnClick(object sender, EventArgs e) 
{ 
    //alert 
} 
</script> 

正如我测试它。只有dojotype成功了。

任何人都可以解释给我或我们可以同时使用?

回答

0

尝试添加一个返回到您的函数。

但是,如果您已经可以使用dojo,那么您应该使用它来防止出现此类问题,特别是如果您的目标是多个浏览器。

+0

做( )重要吗? – Bert 2012-03-21 08:30:59

+0

有时是的。特别是如果你使用IE – kromit 2012-03-21 08:33:03

2

您需要连接dojo按钮的onClick以使用适当的参数调用_doPostback。 _doPostback由ASP.NET发出,并且是用于触发回发并执行服务器端事件的机制。

0

虽然这可能不是直接关于dojotype这个例子可能会帮助你。我使用以下方式在提交时调用javascript和asp.net。

<asp:Button ID="btnSubmit" runat="server" Text="Send" OnClick="btnSubmit_Click" onclientclick="javascript:alert('A');" /> 

您可以检查页面是否执行JavaScript

<asp:Button ID="btnSubmit" runat="server" Text="Send" OnClick="btnSubmit_Click" onclientclick="javascript:Page_ClientValidate();if(Page_IsValid){ //Do stuff };" /> 
0

之前有效你不能兼得!基本上,dojo和asp.net尝试替换onClick处理程序,所以你不会看到两个成功。

最好的解决办法是增加回传逻辑在道场单击处理:

<button id="ButtonLogin" runat="server" 
dojotype="dijit.form.Button" jsid="ButtonLogin" 
     style="float: right;padding: 5px 15px 0px 0px;"> 
         Login 
    <script type="dojo/method" data-dojo-event="onClick" data-dojo-args="evt"> 
    __doPostBack('ButtonLogin',''); 
    </script> 
</button> 

DD

+0

尝试过,但仍然没有运气。即时通讯考虑因为他们正在使用不同的形式和不能同时工作。 – Bert 2012-04-03 08:57:22

0

我觉得有语法问题,单击事件不执行和功能不改为调用'onServerClick',你可以尝试'onserverclick'。可能这将解决你的问题......

试试这个代码

<button id="ButtonLogin" runat="server" onserverclick="ButtonLogin_OnClick" dojotype="dijit.form.Button" jsid="ButtonLogin" style="float: right; 
          padding: 5px 15px 0px 0px;">Login</button> 

否则 可以调用ButtonLogin_OnClick功能上道场点击事件,这将触发事件都一起......

相关问题