ASP.NET AJAX 服务器端编程学习小结
最近开始了ASP.NET AJAX的全面学习。在服务端编程这块主要有几个服务器控件负责,他们分别为:ScriptManager,Timer,UpdatePanel,UpdateProgress.
先来说说ScriptManager.它有个方法registerAsyncPostBackControl(控件),可以注册页面上的任何控件为异步传送按钮。还有个方法叫AsyncPostBackError的来着,在这个方法里面可以定义属于自己的错误显示方式。
UpdatePanel,这个控件的用法有很多种,并且有几个属性是非常重要的。它们分别是:UpdateMode,ChildrenAsTrigger,Triggers.通过这几个属性的组合能产生很多的异步页面更新的效果.UpdateMode的值可以为:always,conditional;ChildrenAsTrigger的属性值可以为:True,False.Triggers的属性值为一个包含两种类型的Trigger集合(AysncPostBackTrigger,PostBackTrigger).
现在假设有个UpdatePanel控件,我来分别设置这些属性值的组合。
UpdateMode(always)+ChildrenAsTrigger(true):不论引发异步传送的控件是否放在UpdatePanel里面,该UpdatePanel都会更新.
UpdateMode(always)+ChildrenAsTrigger(FALSE):系统不允许这样设置
UpdateMode(Conditional)+ChildrenAsTrigger(false):放在该Updatepanel里面的控件无法引发异步传送,此时如果想要达到更新该UpdatePanel控件的效果,有两个方法:1.用UpdatePanel的Update()方法2.设置UpdatePanel的Triggers属性。
方法一: 该方法有个局限型,不能是该UpdatePanel控件里面的控件引发的事件,因为里面控件不能进行异步事件。只有通过ScriptManager的registerAsyncPostBackControl(控件)注册一个可以异步回发的控件,然后在他的触发事件里面引用该UpdatePanel的Update()方法达到更新该UpdatePanel的效果。
方法二:设置成Trigger的控件可以在该UpdatePanel里面也可以再它外面,如果设置成功的话,通过触发这个设置成该UpdatePanel的Trigger的控件,就能达到更新的效果。
UpdateMode(Conditio
相关文档:
Js代码
var url=Service.aspx?Value=' + escape(va);
obj=CreateAJAX();
if(obj)
& ......
使用input控件onclick传递json比较简单,
使用asp:Button 服务器控件onclick会回发刷新页面使json的值丢失。
在Handler1.ashx中使用静态变量存储当两个人同时操作的时候会出现问题,如果您有好的解决办法,希望能于大家分享。
以下代码大多来源于网上,在此感谢作者。
//前台
<script src="JS/json2.js" type="text ......
对“添加”、“提交”、“保存”、“更新”等按钮需要对数据库进行写操作的按钮,一定要在页面初始化时加载脚本,防止多次重复点击,例如:
protected void Page_Load(object sender, EventArgs e)
{
//.net 2.0以上
......
<asp:DropDownList ID="compactType" runat="server" AutoCallBack="True" Width="153px"> </asp:DropDownList>
<?xml version="1.0" encoding="utf-8" ?>
<roots>
<root>
<id>1</id>
<Culture> ......
<script type="text/javascript">
var loginName,checkUN,password,confirmPwd,email,subBtn,userName,checkTel,tel;
$(init);
function init()
{
loginName = $("#loginName");
loginName.bind("blur",checkUserName);
password = $("#password"); ......