ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel简单的使用方法(第一篇)。

 

主要内容

1UpdatePanel控件概述

2UpdatePanel工作原理

3ContentTemplate属性

4ContentTemplateContainer属性

5Triggers属性

 

一.UpdatePanel控件概述

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel工作原理和使用方法。简单的UpdatePanel定义如下:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

    
<ContentTemplate>

        
<!---->

    
</ContentTemplate>

    
<Triggers>

        
<asp:AsyncPostBackTrigger />

        
<asp:PostBackTrigger />

    
</Triggers>

</asp:UpdatePanel>

UpdatePanel重要的属性如下:

属性

说明

ChildrenAsTriggers

UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。

RenderMode

表示UpdatePanel最终呈现的HTML元素。Block(默认)表示<div>Inline表示<span>

UpdateMode

表示UpdatePanel的更新模式,有两个选项:AlwaysConditionalAlways是不管有没有Trigger,其他控件都将更新该UpdatePanelConditional表示只有当前UpdatePanelTrigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel

 

二.UpdatePanel工作原理

UpdatePanel的工作依赖于ScriptManager服务端控件(ASP.NET AJAX入门系列(2):使用ScriptManager控件)和客户端PageRequestManager类(Sys.WebForms.PageRequestManager,在后面的客户端类中会专门说到),当ScriptManager中允许页面局部更新时,它会以异步的方式回传给服务器,与传统的整页回传方式不同的是只有包含在UpdatePanel中的页面部分会被更新,在从服务端返回HTML之后,PageRequestManager会通过操作DOM对象来替换需要更新的代码片段。

看一下官方网站提供的UpdatePanel工作原理图:

三.ContentTemplate属性

Contente Template标签用来定义UpdatePanel的内容,在它里面可以放任何ASP.NET元素。如果你想要使用编程的手法来控制UpdatePanel中的内容,就需要使用ContenteTemplateContainer,下面会说到,先来看一个简单的ContentTemplate的例子。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

    
<ContentTemplate>

        
<asp:Calendar ID="Calendar1" ShowTitle="True" runat="server" />

        
<div>

            Background:

            
<br />

            
<asp:DropDownList ID="ColorList" AutoPostBack="True" OnSelectedIndexChanged="DropDownSelection_Change"

                runat
="server">

                
<asp:ListItem Selected="True" Value="White"> 

                White 
</asp:ListItem>

                
<asp:ListItem Value="Silver"> 

                Silver 
</asp:ListItem>

                
<asp:ListItem Value="DarkGray"> 

                Dark Gray 
</asp:ListItem>

                
<asp:ListItem Value="Khaki"> 

                Khaki 
</asp:ListItem>

                
<asp:ListItem Value="DarkKhaki"> D

                ark Khaki 
</asp:ListItem>

            
</asp:DropDownList>

        
</div>

    
</ContentTemplate>

</asp:UpdatePanel>

事件代码:

<script runat="server">

    
void DropDownSelection_Change(Object sender, EventArgs e)

    
{

        Calendar1.DayStyle.BackColor 
=

            System.Drawing.Color.FromName(ColorList.SelectedItem.Value);

    }


</script>

四.ContentTemplateContainer属性

如果要使用编程的手法去设置UpdatePanel中的内容,需要创建一个UpdatePanel,并且添加控件到ContentTemplateContainer,而不能直接添加控件到ContentTemplate,如果想直接设置ContentTemplate,则需要编写一个自定义的Template,并去实现位于System.Web.UI命名空间下的接口ITemplate。看一个简单的来自于官方网站的例子:

<%@ Page Language="C#" %>

<script runat="server">

    protected 
void Page_Load(object sender, EventArgs e)

    
{

        UpdatePanel up1 
= new UpdatePanel();

        up1.ID 
= "UpdatePanel1";

        up1.UpdateMode 
= UpdatePanelUpdateMode.Conditional;

        Button button1 
= new Button();

        button1.ID 
= "Button1";

        button1.Text 
= "Submit";

        button1.Click 
+= new EventHandler(Button_Click);

        Label label1 
= new Label();

        label1.ID 
= "Label1";

        label1.Text 
= "A full page postback occurred.";

        up1.ContentTemplateContainer.Controls.Add(button1);

        up1.ContentTemplateContainer.Controls.Add(label1);

        Page.Form.Controls.Add(up1);

    }


    protected 
void Button_Click(object sender, EventArgs e)

    
{

        ((Label)Page.FindControl(
"Label1")).Text = "Panel refreshed at " +

            DateTime.Now.ToString();

    }


</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    
<title>UpdatePanel Added Programmatically Example</title>

</head>

<body>

    
<form id="form1" runat="server">

        
<div>

            
<asp:ScriptManager ID="TheScriptManager"

                               runat
="server" />

        
</div>

    
</form>

</body>

</html>


五.Triggers属性

ASP.NET AJAX中有两种Triggers:分别为AsyncPostBackTriggerPostBackTriggerAsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送。这一点跟Atlas有很大的区别,大家需要注意。看一个小例子,虽然两个Button都放在了UpdatePanel中,但是由于在PostBackTrigger中指定了Button2,所以它使用的仍然是整页回送。

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

<script runat="server">

    
void Button1_Click(object sender, EventArgs e)

    
{
        
this.Label1.Text = "更新时间:" + System.DateTime.Now.ToString();
    }


    
void Button2_Click(object sender, EventArgs e)

    
{
        
this.Label1.Text = "更新时间:" + System.DateTime.Now.ToString();
    }


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    
<title>UpdatePanel Trigger Sample</title>

</head>

<body>

    
<form id="form1" runat="server">

    
<div>

        
<asp:ScriptManager ID="ScriptManager1" runat="server">

        
</asp:ScriptManager>

    
</div>

        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">

            
<ContentTemplate>

                
<div>

                    
<asp:Button ID="Button1" runat="server" Text="异步回送" OnClick="Button1_Click"/>&nbsp;&nbsp;

                    
<asp:Button ID="Button2" runat="server" Text="整页回送" OnClick="Button2_Click"/><br />

                    
<br />

                    
<asp:Label ID="Label1" runat="server" Text="当前时间" Font-Bold="True" Font-Size="Large"></asp:Label></div>

            
</ContentTemplate>

            
<Triggers>

                
<asp:AsyncPostBackTrigger ControlID="Button1"/>

                
<asp:PostBackTrigger ControlID="Button2" />

            
</Triggers>

        
</asp:UpdatePanel>

    
</form>

</body>

</html>


(未完待续)
示例代码下载:http://files.cnblogs.com/Terrylee/ASPNETAJAXUpdatePanelDemo1

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-10-29 22:57 TerryLee 阅读(61282) 评论(136) 编辑 收藏

评论共2页: 上一页 1 2 
 回复 引用 查看   
#23楼 2006-10-31 17:53 fly2008      
好文章!!!
 回复 引用 查看   
#24楼[楼主] 2006-10-31 19:26 TerryLee      
@小庄[匿名]
我觉得应该没什么问题吧

 回复 引用 查看   
#25楼[楼主] 2006-10-31 19:26 TerryLee      
@Kevin Wu
谢谢

 回复 引用 查看   
#26楼[楼主] 2006-10-31 19:30 TerryLee      
@品雨凉秋
谢谢

 回复 引用 查看   
#27楼[楼主] 2006-10-31 19:31 TerryLee      
@TNT2[匿名]
邮件收到了,可是太忙还没有来的及看啊-_-

 回复 引用 查看   
#28楼[楼主] 2006-10-31 19:33 TerryLee      
@ronglj
谢谢

 回复 引用 查看   
#29楼[楼主] 2006-10-31 19:37 TerryLee      
@TheOLD(远古)
貌似也是闪的,不过这种闪是由于要更新日历控件的背景,所以下拉框失去了焦点所造成的,只要页面不闪就好了啊:)

 回复 引用 查看   
#30楼[楼主] 2006-10-31 19:38 TerryLee      
@Raysbo
有点忙,稍微要晚一点:)

 回复 引用 查看   
#31楼[楼主] 2006-10-31 19:43 TerryLee      
@fly2008
谢谢:)

注意身体呀,您的文章很好懂,谢谢
 回复 引用 查看   
#33楼[楼主] 2006-11-18 18:14 TerryLee      
@共同学习,共同进步
谢谢,我会注意的

 回复 引用 查看   
#34楼 2006-11-23 15:58 SkyDragon      
多多你们的无私奉献,使得我们学东东少走了很多弯路,

这段时间一直关注着的你博客,看有没有新东东,呵呵

非常感谢!

 回复 引用 查看   
#35楼[楼主] 2006-11-23 20:56 TerryLee      
@SkyDragon
这几天在参加培训,没顾上更新

总觉着那个DropList闪啊闪的,不爽
 回复 引用 查看   
#37楼[楼主] 2006-11-30 19:26 TerryLee      
@海东青[匿名]
还好吧:)

 回复 引用   
#38楼 2006-11-30 23:25 悠悠过客[未注册用户]
搂主真是热心,中国程序界的骄傲!
 回复 引用 查看   
#39楼[楼主] 2006-12-01 08:53 TerryLee      
@悠悠过客
呵呵,不敢当:)

 回复 引用 查看   
#40楼 2006-12-24 01:27 丹心猪(Dansinge)      
已学完
 回复 引用 查看   
#41楼[楼主] 2006-12-24 15:54 TerryLee      
@丹心猪(Dansinge)
:)

 回复 引用   
#42楼 2007-01-11 10:48 elvis[未注册用户]
111
 回复 引用   
#43楼 2007-01-16 23:55 Henry[未注册用户]
我天天来看,天天来抄,哈哈
 回复 引用   
#44楼 2007-01-16 23:56 Henry[未注册用户]
看着过瘾呀!!!支持!!!!
 回复 引用 查看   
#45楼 2007-01-17 16:19 孤叶(学习.net框架)      
现这些大佬 好像都不更新了
像dflying,Terry zhao。呼呼,
要是谁有空可以写一些关于使用asp.net ajax使用情况就好了

 回复 引用 查看   
#46楼[楼主] 2007-01-17 23:11 TerryLee      
@孤叶(学习.net框架)
最近太忙了,实在是顾不上了:)

 回复 引用 查看   
#47楼[楼主] 2007-01-17 23:12 TerryLee      
@Henry
:)

欢迎常来:)

 回复 引用   
#48楼 2007-01-17 23:12 Henry[未注册用户]
快一个月没更新过了:(
 回复 引用   
#49楼 2007-01-18 09:48 capbayer[未注册用户]
I want to find a couple of guys to join my company's projects, my company locates in Santa Clara of California, we are using .NET to do CMS system in server side, please contact me by email: shaw985@hotmail.com

 回复 引用   
#50楼 2007-01-18 10:32 warshall[未注册用户]
不错
 回复 引用   
#51楼 2007-01-19 17:49 grim1980[未注册用户]
楼主真是有心人,写的东西比任何一本书都要好。写出了一个出学者的学习之路,对我这样的出学者很有帮助,让我少走许多弯路,有时间我会多看看你写的别的东西,相信一定也一样很有价值。
 回复 引用 查看   
#52楼[楼主] 2007-01-20 00:26 TerryLee      
@grim1980
谢谢:)

 回复 引用   
#53楼 2007-01-20 10:01 陈一夫[未注册用户]
老大,请教个问题。在您的第五个例子里,button2也是放在UpdatePanel里的啊,为什么回引起页面刷新呢,按理说就算它是整页回传也不应该引起整页刷新的啊?这是在我本机上测试的结果,不知道其他人是不是也有这个问题。
 回复 引用 查看   
#54楼[楼主] 2007-01-20 12:37 TerryLee      
@陈一夫
这是因为下面这句话
<asp:PostBackTrigger ControlID="Button2" />
指定它为整页回传触发器,而不是异步

 回复 引用   
#55楼 2007-02-02 22:00 ni[未注册用户]
TerryLee:
我才刚刚搞AJax . 运行一示例代码,却报告脚本错误:"Sys"变量未定义
这是什么地方出错! 急盼指点.

 回复 引用   
#57楼 2007-02-07 14:24 无名[未注册用户]
谢谢 老师
 回复 引用   
#58楼 2007-02-07 14:25 无名[未注册用户]
写得很棒 通俗易懂
 回复 引用 查看   
#59楼[楼主] 2007-02-07 16:55 TerryLee      
@ni
查看一下你的Web.config文件

 回复 引用 查看   
#60楼[楼主] 2007-02-07 16:55 TerryLee      
@无名
:)

 回复 引用 查看   
#61楼 2007-02-24 08:03 若寒      
不错!~
 回复 引用   
#62楼 2007-03-03 11:31 一[未注册用户]
相见恨晚???
 回复 引用   
#63楼 2007-03-06 18:48 andy[未注册用户]
呵呵!剛剛學習完,不錯!!關注你的文章
 回复 引用 查看   
#64楼 2007-03-06 19:14 folen      
多谢了,学了不少东西
 回复 引用   
#65楼 2007-03-06 20:04 求知若渴[未注册用户]
TerryLee,问个问题,弄了很久了不得其解。
情况:我的一个页面加了控件ScriptManager 以后后台CS程序就出错,把这个控件去掉有好了。其他一个字母都没有加,就加了<asp:ScriptManager ID="ScriptManager1" runat="server" />就不行了。

提示:
System.Data.EvaluateException: Cannot find column [sdfgdfgd].

Line 224: //dg1.DataBind();
Line 225: //return;
Line 226: DataRow[] dr = ds.Tables[0].Select("ID in (" + checkboxValue + ") ");

Source File: f:\VWD和.NET\Article\Admin\Manager_Add.aspx.cs Line: 226

如果在控件里把属性EnablePartialRendering设为FALSE又好了。奇怪啊。
出错的那段代码如下:
string checkboxValue=null;
for (int i = 5; i < Request.Form.Count-1; i++)
{
checkboxValue += "," + Request.Form[i].Trim().ToString();
}
if (checkboxValue == null || checkboxValue.Length == 1)
{
GolbalClass.ShowMessage("至少添加一个权限给此帐号比如:系统辅助。", 1, "");
return;
}
checkboxValue = checkboxValue.Substring(1);
DataSet ds = XML.StaticXml.GetXmlAllNode(Server.MapPath("userpower/User/navData.xml"));

DataRow[] dr = ds.Tables[0].Select("ID in (" + checkboxValue + ") ");//执行到这句出错,望指教!!!!!!

 回复 引用 查看   
#66楼 2007-03-17 17:28 YanziMyWife      
UpdateMode
没搞懂是什么意思!

 回复 引用 查看   
#67楼 2007-05-09 12:13 汤智程      
@TerryLee
你好
请问
1.在 UpdatePanel 内动态增加几个控件
几个控件 怎样可以定位?(就是控制控件在那个表内)
(<table id=table1> 控件2 </table>.....<table id=table2> 控件1 </table>..... )
可以自己控制 控件在 UpdatePanel 中的位置 ,而不是按照顺序显示?

 回复 引用   
#68楼 2007-07-11 08:50 yueyang[未注册用户]
写的很好!向你学习!
 回复 引用   
#69楼 2007-08-01 14:22 wjm93[未注册用户]
查资料找到这里,帮我解决了相关控件的用法问题.谢谢!
 回复 引用 查看   
#70楼 2007-09-06 15:57 遭雷劈      
写的 挺详细的~~
 回复 引用 查看   
#71楼 2007-09-12 08:50 白虎      
谢谢你啊,最新的教材,1-|_
 回复 引用   
#72楼 2007-11-06 13:25 水晶螺[未注册用户]
太棒了,全部搬到我的博客上去。谢谢博主!你太伟大了。
 回复 引用   
#73楼 2007-12-17 15:26 Fengdesudu[未注册用户]
感谢中......
 回复 引用   
#74楼 2007-12-20 11:29 路人乙[未注册用户]
弱弱问一句,点击两个按钮时候有什么区别吗?好像都是整夜刷新哦?
 回复 引用   
#75楼 2008-03-17 19:53 flying_99[未注册用户]
一看就明白了 太谢谢LZ了
 回复 引用   
#76楼 2008-04-09 10:48 J.C[未注册用户]
关于ContentTemplateContainer那里有点问题
using Microsoft.Web.UI;
UpdatePanel Up1 = new UpdatePanel();
不过这个Up1没有UpdatePanelMode,只有Mode
另,最后不是要在页面里附加这个UpdatePanel,使用 Page.Form.Controls.Add(Up1);会出错,提示

A ContentTemplate must be specified for UpdatePanel 'Up1'.

怎么回事?

 回复 引用   
#77楼 2008-04-09 11:12 J.C[未注册用户]
对了,我这里只能用
<atlas:ScriptManager runat="server" ID="SM1" />
而不能用
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>

--------------------------------------------------------------

是不是我装的版本不对呢?

 回复 引用   
#78楼 2008-04-09 11:32 J.C[未注册用户]
谢谢,前两个问题估计是由于版本问题,现已解决,谢谢
 回复 引用 查看   
#79楼 2008-04-20 23:12 henry_2008      
学习了
 回复 引用 查看   
#80楼 2008-05-29 20:27 胡武陵      
不错
 回复 引用 查看   
#81楼 2008-06-09 21:17 zagelover      
很棒的教材,现在才看到,太可惜了
 回复 引用   
#82楼 2008-06-29 22:41 mjsong[未注册用户]
感谢。。学到很多。。
 回复 引用   
#83楼 2008-06-30 21:03 veinyf#163.com[未注册用户]
--引用--------------------------------------------------
J.C: 对了,我这里只能用
&lt;atlas:ScriptManager runat=&quot;server&quot; ID=&quot;SM1&quot; /&gt;
而不能用
&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot;&gt; &lt;/asp:ScriptManager&gt;

--------------------------------------------------------------

是不是我装的版本不对呢?
--------------------------------------------------------
看懂这个也许能帮助你~!~!

 回复 引用   
#84楼 2008-06-30 21:04 veinyf#163.com[未注册用户]
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>

 回复 引用   
#85楼 2008-07-30 11:27 cychai[未注册用户]
我在vs2008中使用代码编写UpdatePanel的时候,没有UpdateMode呢?
 回复 引用 查看   
#86楼[楼主] 2008-07-30 12:39 TerryLee      
@cychai
这问题很奇怪,不知道哪儿的事。

你的意思是这样写代码:
UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional;
没有UpdateMode属性?

 回复 引用   
#87楼 2008-07-30 14:49 cychai[未注册用户]
不好意思,问题出在我新建的页面使用的名称也是“ UpdatePanel ”,引起了冲突。
 回复 引用 查看   
#88楼[楼主] 2008-07-31 01:14 TerryLee      
@cychai
:)

 回复 引用   
#89楼 2008-08-05 02:10 monday[未注册用户]
在一个事件里如何才能多次update,我在按钮事件里两次改变一个LABEL的文本并update,只有第二次update会显示出改变。要如何处理呢?
 回复 引用   
#90楼 2008-08-05 11:07 商易网络[未注册用户]
很不错的文章,谢谢!
 回复 引用 查看   
#91楼[楼主] 2008-08-06 13:24 TerryLee      
@monday
什么叫在一个时间里多次Update?

 回复 引用 查看   
#92楼[楼主] 2008-08-06 13:24 TerryLee      
@商易网络
:)

 回复 引用   
#93楼 2008-08-22 14:43 叮咚[未注册用户]
非常好
我是net菜鸟,也能看懂这些文章

 回复 引用   
#94楼 2008-08-29 09:11 Alex zhu[未注册用户]
对于AJAX的初学者来说是非常有用的...我现在用VS2008.
 回复 引用   
#95楼 2008-09-09 13:14 TAOTAO1130[未注册用户]
好啊,我现有个问题,想问一上,关于AJAX的,我用了UPDATEPANEL控件,能够使这个控件实现第一次局部刷新,第二次就不行了!是什么原因呢!!!
页面其它地方有跟变量绑定
急急,谢谢!!!

 回复 引用   
#96楼 2008-09-09 14:20 TAOTAO1130[未注册用户]
--引用--------------------------------------------------
TAOTAO1130: 好啊,我现有个问题,想问一上,关于AJAX的,我用了UPDATEPANEL控件,能够使这个控件实现第一次局部刷新,第二次就不行了!是什么原因呢!!!
页面其它地方有跟变量绑定
急急,谢谢!!!
--------------------------------------------------------
我自己搞定了,谢谢!!

 回复 引用   
#97楼 2008-10-12 14:09 Dua[未注册用户]
好像两个button点击效果没什么不一样呀,都是整页面刷新呀??
 回复 引用   
#98楼 2008-10-12 14:28 Dua[未注册用户]
不好意思,我弄错了,一个是整页刷新一个不是,但是能不能请教一个问题,为什么局部刷新也要调用页面的page_load事件呢?
 回复 引用   
#99楼 2008-11-25 17:25 George lei[未注册用户]
我也是看你的文章来学习ajax的, 谢谢了
 回复 引用 查看   
#100楼[楼主] 2008-12-01 00:05 TerryLee      
@George lei
:)

 回复 引用   
#101楼 2008-12-20 15:58 code~zzz[未注册用户]
赞赞~~~~~~~~~~~~
 回复 引用 查看   
#102楼[楼主] 2008-12-21 11:12 TerryLee      
@code~zzz
谢谢支持:)

 回复 引用 查看   
#103楼 2008-12-29 14:41 yangxh      
最近开始学习AJAx,文章对我帮助很大啊,谢谢
 回复 引用 查看   
#104楼[楼主] 2009-01-04 11:26 TerryLee      
@yangxh
不用客气,呵呵:)

 回复 引用 查看   
#105楼 2009-01-09 11:02 ★海戰鷹      
楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子 ,实在是我三生之幸啊
 回复 引用 查看   
#106楼[楼主] 2009-01-12 11:26 TerryLee      
@★海戰鷹
O(∩_∩)O~谢谢谢谢:_)

 回复 引用   
#107楼 2009-02-03 13:40 vevi[未注册用户]
本人初学Ajax,有个地方不懂。
button的click事件可以通过调用aspx网页的cs文件的click方法,没有必要非得使用javaScript方法吧。看版主都是通过js脚本方法实现的。

 回复 引用   
#108楼 2009-03-06 16:36 pigleter[未注册用户]
Lee老师:
你好,能否提供一些进阶的教程或者相关链接。例如有多个updatepanel的,而且不同updatepanel里面的控件之间有互动的等等。
我现在完成了一个页面,该页面有很多下拉框,而且下拉框中有复杂的联动。另外还有一个gridview,gridview里面也有一些button,checkbox等控件。现在想将该页面转为ajax的页面,但不知道如何下手。

谢谢!

 回复 引用   
#109楼 2009-04-01 16:57 黄燕芳[未注册用户]
支持了!讲得很好
 回复 引用   
#110楼 2009-04-29 11:36 wawa
实在太感谢楼主了,之前做silverlight的东西搜到你的文章,写得特别详细易懂。现在做ajax网上一找,还是你写的东西好:)
 回复 引用 查看   
#111楼 2009-05-21 14:04 小狼狗      
mark
 回复 引用   
#112楼 2009-06-25 13:49 daniao[未注册用户]
写的非常好,我刚开始学AJAX,文章通俗易懂,很棒。
 回复 引用 查看   
#113楼 2009-07-07 11:37 我从草原来      
看了两天了 顶一次
羡慕楼主

 回复 引用 查看   
#114楼 2009-07-16 10:35 Aloner      
对于 LEE ,我无比敬佩。

不过,代码中,希望可以多添加注释。Thanks……08年的了……

 回复 引用 查看   
#115楼 2009-07-17 18:32 奇异果      
呵呵!努力学习中!支持LEE!
 回复 引用   
#116楼 2009-07-29 18:10 路过的人[未注册用户]
我为了验证用UpdatePanel是否完成局部刷新,在里外两个不同的地方都放置了本地时间,但是每次要刷新UpdatePanel内的时间,外边的时间也跟着刷新,我的代码没有一点问题,是不是我导入VS2005的Ajax程序包有问题!这个问题很困惑!希望经验丰富的高人解答一下,不甚感谢
(zhangtong9884@163.com)

 回复 引用 查看   
#117楼 2009-09-18 15:39 boy-and-boy      
谢谢
 回复 引用   
#118楼 2009-10-22 11:53 princesstq[未注册用户]
写的不错,ajax东西其实还是很实用的!谢谢你的文章,希望继续更新!
 回复 引用 查看   
#119楼 2009-12-17 13:39 肖蕾      
Sys.InvalidOperationException: 历史记录状态必须足够小,以免使 url 大于 1024 个字符。

请问你们碰到这种情况了么?怎么解决的呢?

 回复 引用 查看   
#120楼 2010-09-19 21:08 Ajax专家      
楼主辛苦了!写的非常棒……咱是新手,貌似还有点看不懂……好高深啊……
 回复 引用 查看   
#122楼 2011-01-04 14:39 b_mars      
学习了 谢谢
评论共2页: 上一页 1 2