[英]Call C# Method using Javascript from ASP.Net with Parameters
誰能幫助我在帶有參數的aspx頁面中使用Javascript背后的代碼中調用C#方法?
這是我調用了sample()方法的javascript:
<script type="text/javascript">
function showModal(arr, hey) {
'<%=sample(arr,hey)%>';
}
</script>
我有兩個具有以下參數的c#代碼被調用:
protected string sample(int i, string a)
{
lblsample.Text =i + "," + a;
return lblsample.Text;
}
這給我一個關於Javascript代碼的錯誤:
arr does not exist in the current context
順便說一句,當單擊圖表中的特定條形時,將執行javascript。 我使用Fusioncharts。
以下是有關如何調用參數並將參數傳遞給ShowModal javascript函數的代碼:
xmlString.AppendFormat("<set label='{3}' value='{1}' tooltext='Employee: {0}{2}Hours:{1}' link='j-showModal-{1}, {1}'/>", dt.Rows[i][1].ToString(), dt.Rows[i][2].ToString(), "{br}", dt.Rows[i]["EmpNameDot"].ToString());
擴展David的答案:呈現頁面后,有多種方法可以從客戶端訪問服務器端。 部分列表,無特定順序:
WebMethod
UpdatePanel
ASMX
Web服務 WCF
Web服務 Web API
SignalR
選擇哪種取決於您要實現的目標。 無論如何,您都需要發出AJAX
請求(可以使用jQuery
非常簡單地完成),並處理JavaScript
代碼中的返回值。 似乎您正在使用WebForms
。 UpdatePanel
是使用WebForms
方法。 UpdatePanel
為您處理了ajax調用,您只需要正確設置即可。
編輯:如果您對問題進行了更好的解釋,然后再編輯,那么您也許會提供更實用的答案。
您不能像這樣混合使用客戶端和服務器端代碼。 請求頁面時,服務器端代碼在服務器上運行。 並且那時它不了解任何客戶端事件或信息。
無論如何,為什么要嘗試在服務器端代碼中執行此操作? 您要做的就是在頁面元素上設置一些文本。 只需使用JavaScript即可,因此您不必發回服務器。 像這樣:
function showModal(arr, hey) {
document.getElementById('lblsample').textContent = arr + ',' + hey;
}
請注意,這假設您的HTML中的客戶端 id
值為lblsample
。 事實並非如此。 您必須實際檢查HTML並進行檢查。 不過,有一種解決方法可以幫助服務器端代碼。 您可以嵌入一些服務器端代碼,使其在頁面加載時運行一次,這將發出該元素的客戶端id
:
function showModal(arr, hey) {
document.getElementById('<%=lblsample.ClientID%>').textContent = arr + ',' + hey;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.