从javascript调用C#代码

时间:2013-12-13 15:33:04

标签: c# javascript asp.net

除了我在网上发现的东西之外,我必须有更好的方法来做到这一点。

<script type="text/javascript">
    function Sub()
        {
            if (document.getElementById("DatePicker1").Text == "")
                alert("Select a date");
            else
                Submit(); //this is the c# function
        }
</script>

<asp:Button ID="Button1" runat="server" OnClientClick="Sub()" PostBackUrl="~/Default.aspx" Text="Submit" />

为什么如果我将其更改为OnClick =“提交”,我可以这样做,但尝试在客户端验证之后这样做很难!很沮丧。我是一个非常有经验的程序员,但对于网络相关的东西是新的,所以这一点,而客户端与服务器废话一直在阻碍。
请让我知道任何好的解决方案。我宁愿不使用jQuery,因为我想稍后单独研究它。谢谢。

2 个答案:

答案 0 :(得分:3)

您实际上不需要从Javascript中调用Web方法。您可以尝试以下方法:

按下OnClickOnClientClick。在OnClientClick执行return Sub()

<asp:Button ID="Button1" runat="server" OnClientClick="return Sub()" 
      OnClick="Button1_Click"  PostBackUrl="~/Default.aspx" Text="Submit" />

Button1_Click事件中,您可以调用方法Submit

在您的Javascript中,根据验证返回true或false。

<script type="text/javascript">
    function Sub()
    {
        if (document.getElementById("DatePicker1").Text == "")
        {
            alert("Select a date");
            return false;
        }
        else
        {
            return true;
        }
    }
</script>

这将防止OnClick事件在验证失败的情况下被触发。

答案 1 :(得分:1)

OnClick将在服务器端工作,OnClientClick将在客户端执行,然后控制权传递给服务器。

如果客户端代码返回TRUE,那么它将转到服务器。如果它用于验证并返回false,则不会转到服务器。