2011-05-22 101 views
0

我有一个按钮,与相应的aspx是这样的:按钮不会导致回发

<asp:Button runat="server" ID="checkall" OnClientClick="setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

这是因为我要为发生在服务器端这个特定的按钮逻辑是验证每一个发生时间在Page_Load事件中,另外,我想要首先调用Javascript函数。但是,当我点击按钮时,它似乎不会导致第一次回发,只是第二次发布。

如何保证客户端函数先执行,然后生成回发?

+0

你能告诉我们生成的html吗? – TweeZz 2011-05-22 14:23:10

+1

我在页面验证失败时遇到了这个问题。可能值得看一下。 – 2011-05-22 14:33:26

回答

0

这发生在我身上几次。原因是我在OnClientClick中指定的函数返回'false'。

锄头是不是'setAllWeeks'看起来像? 也许它返回false?

+0

好的,谢谢,我错了。必须有'返回setAllWeeks(true)';'作为您的OnClientClick。 – TweeZz 2011-05-22 14:22:50

+0

该函数返回void。 – Puppy 2011-05-22 14:23:50

1

执行以下代码:

<asp:Button runat="server" ID="checkall" OnClientClick="return setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

而且setAllWeeks()函数中执行以下操作:

function setAllWeeks(val) { 

    //If everything all right 
    If(True) 
    { 
     //Do something 
     return true; 
    } 
    else 
     return false; 
} 

如果函数的行为是没事返回true,否则返回假。

注意:函数的所有路径都应该返回一个值(布尔值)。