如何从JavaScript调用C#代码

时间:2013-03-07 16:07:57

标签: c# javascript asp.net

当JavaScript中的验证为真时,我想在JavaScript后面的代码中调用C#代码。我正面临一些问题,有人可以提供帮助。谢谢 这是我的JavaScript

  <script type="text/javascript">
        function Validate_Checkbox() {
            var chks = $("#<%= cblCustomerList.ClientID %> input:checkbox");

            var hasChecked = false;
            for (var i = 0; i < chks.length; i++) {
                if (chks[i].checked) {
                    hasChecked = true;
                 //call C# code
                    break;
                }
            }
            if (hasChecked == false) {
                alert("Please select at least one checkbox..!");

                return false;
            }

            return true;
        }     
    </script>

这是我要调用的C#代码

 protected void DV_Test_ItemInserting(object sender, DetailsViewInsertEventArgs e)
    {
       do something
    }

这是调用JavaScript的按钮

<asp:Button ID="Button1" runat="server" CausesValidation="True" 
                            CommandName="Insert" Text="Insert" OnClientClick="javascript:Validate_Checkbox();return true;"/>

5 个答案:

答案 0 :(得分:1)

这是您的问题的答案How to make an AJAX call without jQuery?

然而,你可能会想到,使用JQuery会简化编写javascript代码的方式。

答案 1 :(得分:0)

以下是关于此主题的非常好的解释

1: http://www.dotnetcurry.com/ShowArticle.aspx?ID=109&AspxAutoDetectCookieSupport=1

2: http://forums.asp.net/t/1111231.aspx

我希望这可以帮到你; - )

或者,如果您有机会将库[ Telerik ]用于ASP。您可以使用控制器[ RadAjaxManager ]

轻松调用C#代码

答案 2 :(得分:0)

我们可以使用数据类型

的Ajax Call

1)json,在这种情况下,您将在后面的代码上创建Web方法并将字符串返回给JavaScript作为返回结果

2)HTML,在这种情况下,您将调用新的HTML页面并返回HTML

答案 3 :(得分:0)

我认为你应该使用服务器端事件(Click)与客户端事件的组合。在服务器端:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

并在

背后的代码中
protected void Button1_Click(object sender, EventArgs e)
{
    //do something here
}

此外,在您的javascript代码中,如果不符合某些条件,则应使用event.preventDefault()。有关详细信息,请查看Mozilla docs。客户端的示例代码可能看起来像(未经测试!):

$(document).ready(function(){
  $('#Button1').click(function(e){
    //some logic to check checkbox status and call e.preventDefault();
  });
});

答案 4 :(得分:0)

您需要使用Eval。例如:

<script type="text/javascript">
    function Validate_Checkbox() {
        ...
        if (chks[i].checked) {
            hasChecked = true;
            eval("<%= Page.ClientScript.GetPostBackEventReference(lbSubmit, String.Empty) %>");
        }
        ...
    }

<asp:Button ID="Button1" CausesValidation="True"  CommandName="Insert" Text="Insert" OnClientClick="javascript:Validate_Checkbox();return true;" runat="server"/>

<asp:LinkButton ID="lbSubmit" style="display:none" OnClick="slbCheckVin_Click" runat="server"/>