簡體   English   中英

如何從JavaScript調用C#代碼

[英]How to call C# Code from JavaScript

我只想在JavaScript中的驗證為true時從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;"/>

這是您問題的答案, 如何在不使用jQuery的情況下進行AJAX調用?

但是,您可能會認為,使用JQuery可以簡化編寫javascript代碼的方式。

這是關於這個主題的很好的解釋

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

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

希望對您有幫助;-)

或者,如果您有機會使用ASP庫[ Telerik ]。 您可以使用控制器[ RadAjaxManager ]輕松調用C#代碼

我們可以將Ajax Call與數據類型一起使用

1)json,在這種情況下,您將在后面的代碼上創建網絡方法,並將字符串返回給JavaScript作為返回結果

2)HTML,在這種情況下,您將調用新的HTML頁面並返回HTML

我認為您應該將服務器端事件(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文檔以獲取詳細信息。 客戶端上的示例代碼可能如下所示(未經測試!):

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

您需要使用評估。 例:

<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"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM