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()
{
//……比如计算某值
}