我可以同时使用dojotype和onServerClick吗?

时间:2012-03-21 08:26:14

标签: javascript asp.net dojo

我尝试使用onserverclick,同时在我的按钮中使用了dojotype。

请参阅此代码。

<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(也提醒一些东西)。

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

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

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

尝试在您的函数中添加返回

但是如果您已经可以使用dojo,那么您应该使用它来防止此类问题,尤其是如果您确实针对多个浏览器。

答案 2 :(得分: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 };" />

答案 3 :(得分:0)

你不能同时拥有这两个!基本上,dojo和asp.net尝试替换onClick处理程序,因此你不会看到它们都成功。

最佳解决方案是在dojo点击处理程序中添加回发逻辑:

<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

答案 4 :(得分: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>

或者 你可以在Dojo点击事件上调用ButtonLogin_OnClick函数,这将同时触发两个事件......