2017-08-25 44 views
0

我有一個aspx頁面,調用一個C#方法的按鈕。按鈕屬性是這些:我怎樣才能得到這個JavaScript調用我的C#方法,並通過一個參數

<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!\")")); 

    } 

的方法將打開另一個ASPX Web網頁的形式通過我的javascript傳遞字符串構建作爲查詢字符串。

我使用的是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

相關問題