asp.NetUpdatePanelの簡単な使い方

5223 ワード

UpdatePanelはページのローカル更新を制御します.この更新機能はscriptMangerコントロールのEnablePartialRendering属性に依存します.この属性がfalseローカル更新に設定されていると機能しません(scriptMangerコントロールのEnablePartialRendering属性のデフォルト値はtrueです.わざわざ設定する必要はありません).
以下は完全なUpdatePanelの構造です.












主なプロパティ:
1,ChildrenAsTriggers:コンテンツテンプレート内のサブコントロールの再送がこのテンプレートを更新するかどうか(UpdateModeのconditionalに関連)
2,UpdateMode:コンテンツテンプレートの更新モードは、alwaysとconditionalの2種類があります
Always:ajax PostBackまたは通常のPostBackのたびにpanelの更新を引き起こすUpdatePanelがAlwaysに設定されている場合、上のChildrenAsTriggersプロパティを使用できず、強引に使用するとエラーが報告されます.updatepanelのデフォルトの更新モードであり、triggerトリガの設定とは直接関係ありません.
conditional:panelの内容は、次のいずれかの条件を満たす場合にのみ更新されます.
UpdateMode="conditional"ChildrenAsTriggers="false"を設定した場合、サブコントロールは更新をトリガーできません
1)パネルのコントロールがPostBackを開始すると
2)パネルが指定したTriggerが起動した場合
3,RenderMode:ローカル更新コントロールの表示形式、2つのうちBlock(ローカル更新はクライアントでdiv形式で表示)とInline(ローカル更新はspan形式でクライアントに表示)
サブエレメント:
1,contentTemplate:コントロールのコンテンツテンプレートをローカルに更新し、任意のコントロールを追加できます.
2,Triggers:ローカル更新を実現するための非同期再送(AsyncPostBackTrigger)を含むローカル更新のトリガ.通常回送(PostBackTrigger)と通常の一養は、ローカル更新コントロールを使用しているかどうかにかかわらず、ページのすべての更新を引き起こします.
以下に簡単な例を示します.
1,updatepanelのupdatemodeをalwaysに設定


















不管哪个按钮,都会触发更新,只不过外面的按钮postback的时候页面显示回发而已 !
1,updatepanel的updatemode设置为conditional( ChildrenTriggers="false" 就是updatepanel中事件不触发更新)


















下面介绍下updatePanel的触发器Trigger
了解数据库的人应该对触发器这个概念比较清楚,Trigger对于UpdatePanel来说也是很关键的
开始简单介绍了UpdatePanel的俩中触发器asyncPostBackTrigger和PostBackTrigger的作用
这里用例子大概在稍微深入地介绍下:
1,普通回调触发器(PostBackTrigger)
PostBackTrigger主要针对UpdatePanel模板内的子控件,因为当子控件被触发时。它只会更新模版内的数据,模板外的控件不会发生变化.当需要更新全局 内容的时候就可以通过PostBackTrigger触发器来实现页面的全部回调。
下面是简单例子:


















2,异步回调触发器(AsyncPostBackTrigger)
是实现局部更新的关键,在触发器内定义引起回发的控件和事件
例:
























运行了发现点击button2的时候只更新了 updatepanel内部的时间
上面的例子也可以动态更新UpdatePanel的一些源代码:
具体例子就不写了下面 大概写点主要代码:


protected void Page_Load(object sender, EventArgs e)
{
//
UpdatePanel mapanel = UpdatePanel1;
//
mapanel.UpdateMode = UpdatePanelUpdateMode.Conditional;
//
Label1.Text = DateTime.Now.ToString();
//
AsyncPostBackTrigger tri = new AsyncPostBackTrigger();
tri.ControlID = "Button2";
tri.EventName = "Click";
mapanel.Triggers.Add(tri);
}
先にこれらを記録します~また多くのエビ達が多く指導することを望みます