2017-08-25 8 views
0

私は、C#メソッドを呼び出すためのボタンを持つaspxページがあります。ボタンの属性はこれらです:どのように私はこのC#のメソッドを呼び出して、パラメータを渡すこのJavaScriptを得ることができます

<asp:Button ID="btnSubmit" runat="server" Text="Search" OnClientClick="BuildTheYear()" /> 

私は私が私のJavaScriptを実行し、最後のステップは、C# 保護された空のButton1 Click(文字列caseNumber)メソッドを呼び出すことで、ボタンをクリックします。これを行うには

私はjavascriptを使用して、これを試みた:

function BuildTheYear() { 
    var year = document.getElementById('cYear').value; 
    if (year.length != 4) { 
     alert('Please enter a 4 digit year only'); 
     return; 
    } 
    var number = document.getElementById('cNumber').value; 
    var checkNumberValue = (number.charAt(0)); 

    if (checkNumberValue === "0") { 
     alert('Please do not enter any zero (0) values before the case number!'); 
     return; 
    } 

    var SearchNumber= year + "-" + number; 
    $.ajax({ 
     type: "POST", 
     url: "Home.aspx/Button1_Click", 
     data: "{s:SearchNumber}", 
     contentType: "application/json; charset=utf-8", 
     dataType:"json" 
    }) 
    return; 

}

私は最終的な結果は、私は必要なものであることを確認するためにいくつかのデータの検証を行うと、すべてが私の作品と私は終わることyearという変数は2017-123456の形式です。私は、この変数を取るとこのようになりますC#メソッドにそれを渡したい:

protected void Button1_Click(string caseNumber) 
    { 
     if (CheckCaseNumber(caseNumber)) 
     { 
      Response.Redirect("~/Forms/InvWithTips2?CaseNumber=" + caseNumber, true); 
     } 
     else 

      RadAjaxManager1.ResponseScripts.Add(string.Format("window.radalert(\"That casenumber was not found. Please enter valid case number!\")")); 

    } 

方法は、クエリ文字列として私のjavascriptによる文字列ビルドを渡し、別のaspx Webフォームが開きます。

私はVisual Studioを使用していますが、アプリケーションを実行して[送信]ボタンをクリックすると、何も起こらないときにドメインの資格情報を入力するよう求められます。私はメソッドにブレークポイントを置き、私はそこに着くつもりはありません。

ご協力いただければ幸いです。

答えて

2

ajax呼び出しを削除し、サーバーサイドイベントを追加することができます。アラートエラーがあると、サーバ側のアクションをトリガーしないようにしたい場合は、サーバー側のイベントは、クライアント側も

<asp:Button ID="btnSubmit" runat="server" Text="Search" OnClick="Button1_Click" OnClientClick="BuildTheYear()" /> 

後に呼び出されます。

あなたはこのようにそれを持っている必要があります。

function BuildTheYear() { 
    var year = document.getElementById('cYear').value; 
    if (year.length != 4) { 
     alert('Please enter a 4 digit year only'); 
     return false; 
    } 
    var number = document.getElementById('cNumber').value; 
    var checkNumberValue = (number.charAt(0)); 

    if (checkNumberValue === "0") { 
     alert('Please do not enter any zero (0) values before the case number!'); 
     return false; 
    } 


    return true; 
} 

コードreturn false;サービス側のアクションを停止します。

+0

ありがとうございました – Perry

関連する問題