您的位置:首页 > Web前端 > JavaScript

利用Anthem.net 实现前台javascript调用服务器端c#函数 及流程分析

2008-12-31 16:51 721 查看
Javascript调用服务器端c#函数(页面函数, 母版函数, 控件函数), 这个功能很早anthem.net就提供了, 且在帮助手册中有相关的例子, 但自己没怎么注意, 今天看同事研究anthem.net时, 突然发现了 . 看来anthem.net给我们留下的发挥空间还是挺大的.
下面举一个简单的例子, 及分析下执行流程.

例子如下:

CS定义函数Add

public int Add(int a, int b) { return a + b; }




添加函数的属性, 这样才能在客户端调用他.

[Anthem.Method]
public int Add(int a, int b)
{
return a + b;
}

在页面加载时注册
[b]Anthem.Manager
[/b]


void Page_Load() { Anthem.Manager.Register(this); }




在aspx页面添加以下html控件

<input id="a" size="3" value="1" />
<input id="b" size="3" value="2" />
<button onclick="DoAdd(); return false;" type="button">Add</button>
<input id="c" size="6">

添加javascript函数, 用来调用服务器端方法.

<script type="text/javascript">
function DoAdd() {
Anthem_InvokePageMethod(
'Add',
[document.getElementById('a').value, document.getElementById('b').value],
function(result) { document.getElementById('c').value = result.value; }
);
}
</script>

第一个参数"add"是服务器端函数名称

Anthem_InvokePageMethod(
'Add',
[document.getElementById('a').value, document.getElementById('b').value],
function(result) { document.getElementById('c').value = result.value; }
);


第二个参数时传给服务器端函数的参数

Anthem_InvokePageMethod(
'Add',
[document.getElementById('a').value, document.getElementById('b').value],
function(result) { document.getElementById('c').value = result.value; }
);


第三个参数是服务器端函数执行后的回调方法.

Anthem_InvokePageMethod(
'Add',
[document.getElementById('a').value, document.getElementById('b').value,
function(result) { document.getElementById('c').value = result.value; }
);


回调结果result是一个对象, 具有一个value属性和error属性. 如果服务器端函数调用出现错误, 则记录在error中, value是返回服务器端方法的执行结果.

Anthem_InvokePageMethod(
'Add',
[document.getElementById('a').value, document.getElementById('b').value,
function(result) { document.getElementById('c').value = result.value; }
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐