0

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

5 に答える 5

1

jQuery を使用せずに AJAX 呼び出しを行うにはどうすればよいですか?

ただし、JQuery を使用すると、JavaScript コードの記述方法が簡素化されると考えるかもしれません。

于 2013-03-07T16:10:55.717 に答える
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"/>
于 2013-03-12T10:33:24.250 に答える
0

データ型でAjaxCallを使用できます

1)json、この場合、コードビハインドでWebメソッドを作成し、結果として文字列をJavaScriptに返します

2)HTML、この場合、新しいHTMLページを呼び出してHTMLを返します

于 2013-03-07T16:14:42.000 に答える
0

これは、このトピックに関する非常に良い説明です

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

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

これがお役に立てば幸いです;-)

または、ASP用のライブラリ [ Telerik ]を使用する機会がある場合。コントローラーで簡単に C# コードを呼び出せる [ RadAjaxManager ]

于 2013-03-07T16:13:19.507 に答える
0

クライアント側のイベントと組み合わせて、サーバー側のイベント(クリック)を使用するとよいと思います。サーバー側:

<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();
  });
});
于 2013-03-07T16:23:07.937 に答える