導航:首頁 > 方法技巧 > js如何調用後台方法

js如何調用後台方法

發布時間:2022-05-18 18:50:03

1. js前台如何調用後台帶參數方法js前台傳入後台的參數是js的變數

你這個是不行的,,我建議你用折中的辦法,使用一個隱藏控制項傳遞值,js直接調用後台按鈕事件,後台按鈕事件獲取隱藏控制項值,然後調用getdata方法。。
你寫的方法問題在於使用了<%
%>,這個東東會在頁面載入的時候定死,換句話說,當頁面載入完,sum已經不是變數了而是值了

2. js裡面如何調用後台代碼

不行。js只能用於客戶端的操作,無法直接操作後台。要調用後台,只有預先設計好介面,比如訪問某一個URL就是調用後頭某一段代碼。

3. js調用後台程序<%=%>用法

後台程序是指asp、php、jsp或者asp.net等。後台程序代碼與前台html和前端js腳本代碼放在同一個頁面,伺服器會首先解析和執行後台腳本代碼,然後把執行結果與html和js一並發送到客戶端的瀏覽器,然後瀏覽器會渲染html頁面並執行其中的前端js腳本代碼。因此後台程序可以把結果嵌入到前端腳本中,然後在瀏覽器中被前端腳本調用。

下面用一個簡單的例子(用的是ASP):

//這是一個簡單的js腳本,不含任何後台代碼:
<script>
alert(1+2);//這個1+2是在前端進行計算的,與後台無任何關系
</script>
//這個則是一個包含後台程序的js腳本(<%和%>之間的內容就是後台代碼):
<script>
alert(<%=1+2%>);//這個1+2的計算就是在後台完成的,就相當於alert(3)
</script>
//也可以把計算過程做成一個函數或者方法:
<script>
alert(<%=plus()%>);//這個plus就是下面這個函數
</script>
<%
functionplus()'這個函數把1+2的計算結果再返回到上面
plus=1+2
endfunction
%>

其他語言的實現原理也是大同小異的。

4. asp.net中的js如何調用後台函數

js調用後台函數需要用ajax方式,js本身是客戶端產物,跟服務端交互需要ajax借口。
前台ajax:

$(function () {
$("#WFddlType").change(
function () {
$.ajax({
type: "Post",
url: "feeForm.aspx/FindLeftBudget", //頁面名/要調用的後台方法名
data: "{'feeTypeID':'10021','costCenterID':'22322'}", //json格式的字元串將參數傳入後台,參數名必須一致
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (result) {
$("#leftBudget").text(result.d); //將獲取到的值賦值給前台的控制項,這里的d,如果後台返回的不是json字元串,而僅僅是一個值,那麼所返回的值就包括在名為d的屬性中
(奇怪吧,我也覺得。。。)
},
error: function (err) {
alert(err);
}
});
});
});
後台C#:
[WebMethod]
public static string Find(string feeTypeID, string costCenterID)
{
if (BudgetControlFacade.Instance.Check(feeTypeID))
{
return BudgetControlFacade.Instance.FindBalance(feeTypeID, costCenterID).ToString();
}
else
{
return "+∞";
}
}

5. javascript onclick中怎麼調用後台方法

方法一:1、首先建立一個按鈕,在後台將調用或處理的內容寫入button_click中;
2、在前台寫一個js函數,內容為document.getElementById(btn1).click();
3、在前台或後台調用js函數,激發click事件,等於訪問後台c#函數;
方法二:1、函數聲明為public
後台代碼(把public改成protected也可以)
public string ss(){return(a);}2、在html里用<%=fucntion()%>可以調用前台腳本<script language=javascript>
var a = <%=ss()%>;alert(a);</script>
方法三:1、<script language=javascript><!--function __doPostBack(eventTarget, eventArgument){var theForm = document.Form1; //指runat=server的form
theForm.__EVENTTARGET.value = eventTarget;
theFrom.__EVENTARGUMENT.value = eventArgument;
theForm.submit();}--></script>
<input id=Button1 type=button name=Button1 value=按鈕 onclick=javascript:__doPostBack('Button1','')>
方法四:<script language=javascript>
function SubmitKeyClick(){if (event.keyCode == 13){event.cancelBubble = true;
event.returnValue = false;
document.all.FunName.value=你要調用的函數名;
document.form[0].submit();}}</script>
<INPUT onkeypress=SubmitKeyClick() id=aaa type=text>
<input type=hidden name=FunName> 〈!--用來存儲你要調用的函數 --〉
在.CS里有:
public Page_OnLoad(){if (!Page.IsPost()){string strFunName=Request.Form[FunName]!=null?Request.Form[FunName]:;
//根據傳回來的值決定調用哪個函數

6. js調用後台非靜態方法

方法一:

1、首先建立一個按鈕,在後台將調用或處理的內容寫入button_click中;

2、在前台寫一個js函數,內容為document.getElementById("btn1").click();
3、在前台或後台調用js函數,激發click事件,等於訪問後台c#函數;

方法二:

1、函數聲明為public

後台代碼

public string methodname() //注意該方法不能為void,否則執行會報錯
{

return "";
}

2、在html里用<%=fucntion()%>可以調用

前台腳本

<script language=javascript>
var a = "<%=methodname()%>";

alert(a);

eval("<%=methodname()%>"); //如果只是要執行服務端的一些代碼也可以寫為如下,這樣就可以執行服務端代碼了
</script>

方法三:利用PageMethods調用後台代碼
實現方法三按照以下步驟:

1.在後台創建方法,必須是static(靜態的),方法必須是public類型的,否則訪問不到會報異常,
接著要在該方法頭部上加上[System.Web.Services.WebMethod],來標注方法特性。

2.在前台頁面加入ScriptManager控制項,並把其EnablePageMethods屬性設為true。
3.調用PageMethods,由於該方法有很多重載

PageMethods.FunctionName(回調的js方法); //其中FunctionName為後台創建的靜態方法名,回調js方法為前台接受結果的方法。

PageMethods例子:

後台代碼:

一.無參數方法
[System.Web.Services.WebMethod]
public static string ShowValue()
{
return "js調用後台方法";
}

二.有參數方法
[System.Web.Services.WebMethod]
public static string ShowValue2(string msg)
{
return msg;

}

前端代碼:

<script type="text/javascript">

//調用後台無參數方法
function bclick()
{
PageMethods.ShowValue(sshow);
}

function sshow(val) //回傳方法用val接受後台代碼ShowValue的執行結果
{
document.getElementById("show").innerText = val;

}

//調用後台有參數方法
function bclick2()
{
var text = "test";
PageMethods.ShowValue2(text,sshow2);
}

function sshow2(val) //回傳方法用val接受後台代碼ShowValue的執行結果
{
document.getElementById("show").innerText = val;
}
</script>

<input id="Button1" type="button" value="click" onclick="bclick();" />
<input id="Button2" type="button" value="click2" onclick="bclick2();" />
<div id="show"></div>

7. 前台JS如何調用後台的方法。

Ajax正是為了解決此類問題。
AJAX = 非同步 JavaScript 和 XML。
AJAX 是一種用於創建快速動態網頁的技術。
通過在後台與伺服器進行少量數據交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。
這樣也就可以通過發送非同步請求來調用後台方法。
請參考:http://www.w3school.com.cn/ajax/ajax_intro.asp

8. 前台JS文件怎麼調用後台一個方法並傳遞參數

protected void SelectOne(string str) 
    { 

        string strs = "select * from MT_Proct where P_Name like str"; 
        sql.Proct(strs); //此方法執行並返回結果 
    } 
前台js代碼 
function Button2_onclick() { 
var TextBox1=document.getElementById ('Text1')    //取出textbox里的內容. 
if(TextBox1.value=="") 

  alert('不能為空!'); 
  return false; 

else 

    <%=SelectOne(Text1.Text) %>        //此處調用後台方法. 
}

9. javascript怎麼調用後台方法

方法一:直接使用<%=%>調用

前台JS:

[javascript] view plain
<script type="text/javascript">
var methodStr = "<%=BehindMethod() %>";
alert(methodStr);
</script>
後頭方法:
[csharp] view plain
public static string BehindMethod()
{
return "這是一個後台的方法";
}
方法二:用ajax調用
前台js:

[javascript] view plain
<script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
<script type="text/javascript">
var params = '{ext:"p9hp"}'; //參數,注意參數名要注意和後台方法參數名要一致
$(function(){
$("#btnOk").click(function(){
$.ajax({
type:"POST", //請求方式
url:"AjaxDemo.aspx/GetImg", //請求路徑:頁面/方法名字
data: params, //參數
dataType:"text",
contentType:"application/json; charset=utf-8",
beforeSend:function(XMLHttpRequest){
$("#tips").text("開始調用後頭方法獲取圖片路徑,請等待");
$("#imgFood").attr("src","image/loading.gif");
},
success:function(msg){ //成功
$("#imgFood").attr("src",eval("("+msg+")").d);
$("#tips").text("調用方法結束");
},
error:function(obj, msg, e){ //異常
alert("OH,NO");
}
});
});
});
</script>
頁面html:
[html] view plain
<body>
<form id="form1" runat="server">
<div>
<label id="tips"></label>
<img id="imgFood" />
<input value="點擊我,給你看一張圖片" type="button" width="35px" id="btnOk" />

</div>
</form>
</body>
後台方法:
[csharp] view plain
[System.Web.Services.WebMethod]
public static string GetImg(string ext)
{
System.Threading.Thread.Sleep(5000);//為了有點等待的效果,延遲5秒
StringComparer sc = StringComparer.OrdinalIgnoreCase;
string[] extArr = new string[] { "php", "asp", "aspx", "txt", "bmp" };
bool f = extArr.Any(s=>sc.Equals(s,ext)); //判斷傳入的後綴名是否存在

if (f)
{
return "image/54222860.jpg";
}
return "image/star1.jpg";
}

方法三:AjaxPro (也是ajax)

第一步:下載AjaxPro.dll(或者AjaxPro.2.dll),並且添加引用到項目

第二步:修改配置文件web.config

[csharp] view plain
<system.web>
<httpHandlers>
<!--注冊ajaxPro.2-->
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
第三步:對AjaxPro在頁Page_Load事件中進行運行時注冊。如:
[csharp] view plain
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxDemo)); //注冊
}

第四步:創建伺服器方法,並且用[AjaxPro.AjaxMethod]標注
[csharp] view plain
[AjaxPro.AjaxMethod]
public string GetImgByAjaxPro()
{
return "image/54222860.jpg";
}
第五步:前台JS的調用:
[javascript] view plain
function GetMethodByAjaxPro() {
var a = JustTest.AjaxDemo.GetImgByAjaxPro();//JustTest是當前的名字空間,AjaxDemo表示後台類
document.getElementById("imgAjaxPro").src = a.value;
}

10. c#js 里怎麼調用後台的函數

javaScript函數中執行C#代碼中的函數

方法一:

1、首先建立一個按鈕,在後台將調用或處理的內容寫入Button1_Click中;

代碼如下:

protected void Button1_Click(object sender, EventArgs e)
{
this.TextBox1.Text = "voodooer";
}

2、在前台可以這樣調用:

代碼如下:

<input type="button" value="訪問C#的方法" onclick='document.getElementById("Button1").click();' />

方法二:

1、函數聲明為public 或者protected

代碼如下:

public string ss()
{
return("voodooer");
}

2、 前台調用方法

代碼如下:

<script language=javascript>
var a = " <%=ss()%>";
alert(a);
</script>

方法三:

<script language="javascript">

代碼如下:

<!--
function __doPostBack(eventTarget, eventArgument)
{
var theForm = document.Form1; //指runat=server的form
theForm.__EVENTTARGET.value = eventTarget;
theFrom.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
-->
</script>
<input type="button" value="按鈕" >

方法四:

代碼如下:

<script language="javascript">
function SubmitKeyClick()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.all.FunName.value="你要調用的函數名";
document.form[0].submit();
}
}
</script>
<INPUT type="text">
<input type="hidden" > 〈!--用來存儲你要調用的函數 --〉

在JavaScript訪問C#變數

方法一:1、通過頁面上隱藏域訪問 <input type="hidden" runat="server">
方法二:1、如後台定義了PUBLIC STRING N;前台js中引用該變數的格式為' <%=n%>'或"+ <%=n%>+"
方法三:1、或者你可以在伺服器端變數賦值後在頁面注冊一段腳本
" <script language='javascript'>var temp=" + tmp + " </script>"
tmp是後台變數,然後js中可以直接訪問temp獲得值。


注意:

在.CS里有:

public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根據傳回來的值決定調用哪個函數
switch(strFunName)
{
case "enter()":
enter() ; //調用該函數
break;
case "其他":
//調用其他函數
break;
default:
//調用默認函數
break;
}
}
}
public void enter()
{
//……比如計算某值
}

閱讀全文

與js如何調用後台方法相關的資料

熱點內容
蟲牙土方法怎麼治 瀏覽:291
水膠體敷料使用方法 瀏覽:828
粉絲的訓練方法 瀏覽:777
鋁蓋發霉怎麼處理方法 瀏覽:316
做生意都有哪些賺錢的方法 瀏覽:441
黃金三角手臂鍛煉方法 瀏覽:11
根號15在數軸上的表示方法圖片 瀏覽:912
語音提示器安裝方法 瀏覽:204
c32漏電保護空開連接方法 瀏覽:367
附件炎有哪些治療方法 瀏覽:335
36x198的簡便計算方法 瀏覽:258
高阻計使用方法 瀏覽:951
水質超標的解決方法 瀏覽:575
英語大師教學方法 瀏覽:155
男性眼袋怎麼消除簡單方法 瀏覽:907
鈦金條有幾種安裝方法好看 瀏覽:829
披薩餅的製作方法和視頻 瀏覽:387
青田玉鑒別方法 瀏覽:914
魅族3夜間模式在哪裡設置方法 瀏覽:374
如何清理水垢的好方法 瀏覽:691