首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Asp.net AJAX怎么在JavaScript中调用后台的方法

2012-07-15 
Asp.net AJAX怎样在JavaScript中调用后台的方法?听说Asp.netAJAX不能通过JavaScript调用后台的方法,但我觉

Asp.net AJAX怎样在JavaScript中调用后台的方法?
听说Asp.net   AJAX不能通过JavaScript调用后台的方法,但我觉得不大可能,
因为ajaxpro都可以通过JavaScript调用后台的方法,Asp.net   AJAX为什么不能呢?
哪位大哥懂得Asp.net   AJAX通过JavaScript调用后台的方法请指点一下

[解决办法]
神呐,谁说滴
一,后台方法:
protected string CsharpVoid(string strCC)
{
return strCC;
}
javascript 调用
<script language= "javascript ">
var s = " <%=CsharpVoid( "www.hagen.cn ")%> ";
document.write(s);
</script>

二,

1.后代码:
protected void CsharpVoid()
{
string strCC = "www.hagen.cn ";
Response.Write(strCC);
}

2.调用方法:CsharpVoid()
<script language= "javascript ">
document.write( " <%CsharpVoid();%> ");
</script>

三,

把需要调用的函数写在服务器控件里,然后在javascript中加入 <img src= "/Images/None.gif " align=top> document.getElementById( "你控件ID ").click();

[解决办法]
Asp.net AJAX一般建议是调用webservice方法,而不是直接调用页面的方法
[解决办法]
javascript+webservice.htc 可以调用后台在webservice写的代码

可以搜索关键字 webservice

godgreat说的方法,也算吧,不过好象更似技巧
[解决办法]
最原始办法如下:
.aspx代码:

<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "test1.aspx.cs " Inherits= "test1 " %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> 无标题页 </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<asp:ScriptManager ID= "sm1 " runat= "server "> </asp:ScriptManager>
<asp:TextBox ID= "txt_PostServerMethod " runat= "server " OnTextChanged= "txt_PostServerMethod_TextChanged " > </asp:TextBox>
<input id= "btn_ExecMethod " onclick= "_do_ServerMethod(document.getElementById( 'txt_PostServerMethod ').value);_do_ClientMethod( 'red '); " type= "button " value= "调用后台方法 " />
<asp:UpdatePanel ID= "UpdatePanel1 " runat= "server " UpdateMode= "Conditional ">
<ContentTemplate>
<div id= "div_Result " runat= "server "> </div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID= "txt_PostServerMethod " EventName= "TextChanged " />
</Triggers>
</asp:UpdatePanel>
</form>
</body>
</html>
<script language= "javascript ">
/**************调用服务端方法*************/
function _do_ServerMethod(ServerMethodName)
{
if(ServerMethodName!= " ")
{
__doPostBack( 'txt_PostServerMethod ', ' ');
}
}
/**************调用客户端方法*************/
function _do_ClientMethod(color)
{alert( "客户端方法 ")
document.getElementById( 'div_Result ').style.color=color;


}
</script>


C#:

using System.Reflection;

public partial class test1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
public void method1()
{
div_Result.InnerText = "调用方法:method1 ";
}
public void method2()
{
div_Result.InnerText = "调用方法:method2 ";
}
protected void txt_PostServerMethod_TextChanged(object sender, EventArgs e)
{
test1 t = this;
MethodInfo vMethodInfo = t.GetType().GetMethod(txt_PostServerMethod.Text);
if (vMethodInfo == null)
{
div_Result.InnerText = "调用方法:无 ";
return;
}
vMethodInfo.Invoke(this, new object[] { });
}
}
[解决办法]
艾,叹息啊,抢分都抢成这样了:

可是可以调用,只是推荐是调用webservice,楼主要调用页面方法的代码看看dflying兄的文章:
http://www.cnblogs.com/dflying/archive/2007/06/05/771490.html

热点排行