asp.net备忘录之JS调用后台方法
文章目录
前言
本文记录asp.net 前台页调用后台方法的几种方式
一、通过js调用控件点击事件调用
通过点击input控件调用js方法,间接调用asp.net 服务器控件按钮
代码(示例)
<script type="text/javascript">
function ClickButton() {
document.getElementById("Button1").click();
}
</script>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<input type="button" name="btnClick3" value="通過JS click asp.netButton" onclick="ClickButton();" />
</script>
二、使用"<%#Eval(“某字段”)%>" 调用
前台代码(示例)
<script type="text/javascript">
//直接调用后台属性
function GetProperty() {
var str = "<%=Property%>";
alert(str);
}
//调用后台方法
function GetFunction() {
var str = "<%=GetString()%>";
alert(str);
}
</script>
<input type="button" name="btnClick" value="js调用后台屬性" onclick="GetProperty();" />
<input type="button" name="btnClick2" value="js调用后台代码" onclick="GetFunction();" />
后台代码(示例)
public partial class WebForm1 : System.Web.UI.Page
{
public string Property {
get { return "test Property"; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
public string GetString()
{
return "通過GetString顯示"+ Property;
}
}
三、Ajax.dll 调用
1.添加引用Ajax.dll
2.webconfig文件添加
<system.webServer>
<handlers>
<add name="ajax" path="ajax/*.ashx" verb="POST,GET" type="Ajax.PageHandlerFactory, Ajax"/>
</handlers>
</system.webServer>
3.注册后台方法
protected void Page_Load(object sender, EventArgs e) {
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));
}
要引用的方法 上需加[Ajax.AjaxMethod]
[Ajax.AjaxMethod]
public string MyFunc()
{
return "res";
}
4.js直接调用
<script type="text/jscript">
function isUserExist(row_defineNo, ModeObject) {
var result = ClassName.MyFunc();
}
</script>
四、Js 通過asp.net ajax 调用后台webService
一、添加webservice頁面,注意要取消掉注釋System.Web.Script.Services.ScriptService
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從指令碼呼叫此 Web 服務,請取消註解下列一行。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
二.ScriptManager前台页注册ScriptManager
<script type="text/javascript">
function UseWebService() {
TommySummary.JsCallFunction.WebService1.HelloWorld(function (result) {
var a = result;
alert(a);
});
}
</script>
<input type="button" name="btnClick5" value="asp.net Ajax 調用 webservice測試" onclick="UseWebService();" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/JsCallFunction/WebService1.asmx"/>
</Services>
</asp:ScriptManager>
总结
本文仅针对asp.net 前台js方法获取服务器后台方法的机种方式加以记录,实际能获取的还有更多方法未记录