0

只有当 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;"/>
4

5 回答 5

1

这是您的问题的答案如何在没有 jQuery 的情况下进行 AJAX 调用?

然而,您可能会认为,使用 JQuery 会简化编写 javascript 代码的方式。

于 2013-03-07T16:10:55.717 回答
0

您需要使用评估。例子:

<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"/>
于 2013-03-12T10:33:24.250 回答
0

这是关于这个主题的一个很好的解释

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

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

我希望这对你有帮助;-)

或者,如果您有机会使用库 [ Telerik ] for ASP。您可以使用控制器 [ RadAjaxManager ]轻松调用 C# 代码

于 2013-03-07T16:13:19.507 回答
0

我们可以使用具有数据类型的 Ajax 调用

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

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

于 2013-03-07T16:14:42.000 回答
0

我认为您应该将服务器端事件(单击)与客户端事件结合使用。在服务器端:

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

在后面的代码中

protected void Button1_Click(object sender, EventArgs e)
{
    //do something here
}

event.preventDefault()此外,如果不满足某些条件,则应在您的 javascript 代码中使用。有关详细信息,请查看Mozilla 文档。您客户端的示例代码可能如下所示(未测试!):

$(document).ready(function(){
  $('#Button1').click(function(e){
    //some logic to check checkbox status and call e.preventDefault();
  });
});
于 2013-03-07T16:23:07.937 回答