关闭顶部展开顶部

ASP.NET2.0服务器控件之捕获回传事件_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴闇夐柨婵嗙墱閸ゅ绻涘顔荤凹闁哄懏绻堥弻娑氫沪閻愵剛娈ら梺鍛婃⒒閺佸摜妲愰幘瀛樺闁圭粯甯婃竟鏇㈡⒒娴d警鏀板ù婊庡墴椤㈡路閻涚S闂傚倸鍊搁崐宄懊归崶褏鏆﹂柣銏⑶圭粣妤呮煙閹殿喖顣奸柛瀣剁節閺屾洘寰勯崼婵嗗濠电偞鍨惰彜闁衡偓娴犲鍊甸柨婵嗗暙婵$兘鏌涚€n偅宕岀€规洘甯¢幃娆撳蓟閵夈儲鏆梻鍌欑閹碱偄煤閵娾晛纾婚柣鎰劋閸婂灚銇勯幒鍡椾壕闂佸疇顫夐崹鍧楀箖濞嗘挸鐭楀鑸瞪戦敍渚€姊绘担瑙勫仩闁告柨閰e畷浼村冀瑜滈崵鏇炩攽閻樺磭顣查柡鍛倐閺屻劑鎮ら崒娑橆伓濠电姷鏁告慨鐑藉极閹间礁纾婚柣鎰惈閸ㄥ倿鎮规潪鎷岊劅婵炲吋鐗犻幃宄扳枎韫囨搩浼€闂佺粯绻傞悥濂稿蓟濞戙垹鐒洪柛鎰典簴濡插牓姊虹紒妯诲鞍闁挎洏鍨藉濠氬灳閹颁礁鎮戦柟鑲╄ˉ閳ь剙纾鎴︽⒒娴g懓鈻曢柡鈧潏鈺傛殰闁跨喓濮撮拑鐔兼煏婵炵偓娅嗛柛瀣閺屾稓浠﹂崜褉妲堝銈呴獜閹凤拷 缂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕闁芥ɑ绻堝娲敆閳ь剛绮旂€靛摜鐜绘俊銈呮噺閻撴瑩姊洪銊х暠濠⒀囩畺閺屻倝寮堕幐搴′淮闂佸搫鏈惄顖涗繆閻戠瓔鏁婇柣鎾冲瘨濞艰崵绱撻崒娆掝唹闁稿鎸搁…鍧楁嚋闂堟稑顫嶉梺缁樻尭閸熸挳寮婚弴鐔风窞闁割偅绻傞‖澶愭⒑缂佹ḿ绠ュù婊庝邯瀵鏁愰崨顏呮杸闂佸湱鍋撳ḿ娆擃敂閿燂拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愪粙鏌ㄩ悢鍝勑㈢痪鎯ь煼閺屾盯寮撮妸銉р偓顒勬煕閵夛絽濡界紓宥呮喘閺屽秹宕崟顐f濡炪倧瀵岄崹杈╂崲濠靛顫呴柨婵嗘閵嗘劙姊洪崫鍕⒈闁告挾鍠庨悾宄拔旈埀顒勩偑娴兼潙閱囬柣鏂挎惈楠炴劙姊绘担瑙勫仩闁稿寒鍨跺畷婵嗩吋婢跺鍓梺纭呮彧闂勫嫰鍩涢幒鎴唵閻犺櫣灏ㄩ崝鐔煎极閸儲鈷戦柛婵嗗椤箓鏌涙繝鍐ⅹ瀹€锝堝劵缁犳稑鈽夊Ο婧炬櫊閺屻劑寮崒婊冪濡炪們鍎茬粙鎾舵閹捐纾兼繛鍡樺灥婵′粙姊洪崫銉ヤ粶妞ゎ厾鍏橀悰顔跨疀濞戞瑦娅㈤梺璺ㄥ櫐閹凤拷 闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剟鎮块鈧弻锝呂旈埀顒勬偋婵犲洤鐭楅煫鍥ㄧ⊕閻撴瑧绱撴担闈涚仼闁哄绋掓穱濠囨倷閹殿喚鐓撻梺鍝勫閳ь剚鍓氶崥瀣箹缁厜鍋撻懠顒佹櫦闂傚倷绀侀幉锟犮€冮崱娆忔瀳鐎广儱娲﹀畷鍙夌箾閹存瑥鐏╂鐐灪娣囧﹪顢涘┑鎰闂傚倸顦粔鎾煘閹达富鏁嬮柛鈩冪懅钃遍梻浣告啞濮婂綊銆冩繝鍥ф槬闁逞屽墯閵囧嫰骞掗幋婵囩亾濠电偛鍚嬮崝娆撳蓟閻旂⒈鏁婇柤娴嬫櫅閻撶喖鎮楃憴鍕婵炶尙鍠栧濠氬幢濡ゅ﹤鎮戦梺鍛婁緱閸ㄦ娊宕㈤鍕拻濞达綀濮ょ涵鍫曟煕閿濆繒鐣垫鐐茬箻閺佹捇鏁撻敓锟�,闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垹绮堢€n偁浜滈柟鎵虫櫅閻忊晝鎮鈧缁樻媴缁涘娈┑顔斤公缁犳捇鏁愰悙鏉戠窞閻庯綆鍓涢鏇熺節閻㈤潧孝闁稿妫濆畷鐢稿即閵忥紕鍘卞銈嗗姧缁插墽绮堥埀顒傜磽娴f彃浜鹃梺鍛婂姀閺傚倹绂嶅⿰鍫熺厸闁稿本姘ㄦ禒銏ゆ煙椤旇棄鐏﹂柕鍥у缁犳盯寮撮悙瀵糕偓鍓х磽娴h櫣甯涢柣鈺婂灦閻涱喚鈧綆鍠楅崐鐑芥煛婢跺鐏╂繛鍫涘€濆缁樻媴閸涢潧缍婇、鏍幢濞戞ḿ顔夐梺鎼炲劀鐏炲墽绋侀梻浣告啞缁诲倻鈧皜鍥у嚑閹兼番鍔嶉悡娆愩亜閺嵮勵棞閻庢凹鍠楃粋宥夘敂閸啿鎷绘繛杈剧到閹诧繝宕悙鐑樼厽闁绘梹娼欓崝銈夋煙楠炲灝鐏╅摶锝呫€掑鐓庣仩婵炲牄鍔嶇换婵嬫偨闂堟刀锝囩棯閺夎法效鐎殿喗鐓¢獮鏍ㄦ媴閸︻厼寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�!

推荐:ASP.NET的底层的工作机制介绍
关于ASP.NET的底层的工作机制,最近园子里讨论的甚是火热。相信很多人都看过Rick Strahl先生的一篇经典之作:A low-level Look at the ASP.NET Architecture,经Rick Strahl同意,我把他的这篇

1、实现捕获回传事件

如果服务器控件需要捕获来自客户端的回传事件,并想为该回传事件自定义服务器端事件处理逻辑,那么控件必须实现
System.Web.UI.IPostBackEventHandler接口。下面列举了该接口定义。

以下为引用的内容:
public interface IPostBackEventHandler
{
 void RaisePostBackEvent(string eventArgument);
}

如上代码所示,IPostBackEventHandler接口仅包括一个成员方法RaisePostBackEvent。该方法使服务器控件能够处理将窗体发送到服务器时引发的事件,其参数eventArgument表示要传递到事件处理程序的可选事件参数。开发人员可以在RaisePostBackEvent方法中实现服务器控件回传过程中执行的逻辑。一般情况下,RaisePostBackEvent方法将引发一个或者多个服务器端事件。以下代码片段显示了在服务器上引发Click事件的RaisePostBackEvent实现。

以下为引用的内容:
public void RaisePostBackEvent(String eventArgument)
{
 OnClick(EventArgs.Empty);
}

实现捕获回传事件并不是仅仅使服务器控件类实现IPostBackEventHandler接口,并实现该接口成员方法就可以的。开发人员还需要注意实现其他内容。下面列举了实现捕获回传事件过程中的三个要点。

第一、也是最重要的,即自定义服务器控件类必须实现IPostBackEventHandler接口,并实现该接口成员RaisePostBackEvent方法。这一过程在上文中已经进行了介绍。

第二、为控件分配UniqueID。

定义引起回传事件的控件的name属性值为UniqueID,是正确实现RaisePostBackEvent方法的关键之一。当引发回传后,页框架就会搜索发送的内容,并确定发送对象的名称是否与实现IPostBackEventHandler的服务器控件的UniqueID对应。如果对应,页框架就会在该控件上调用RaisePostBackEvent方法。这里的重点是需要开发人员在呈现逻辑中,为控件的name属性分配UniqueID。下面列举了一个简单的代码示例。

以下为引用的内容:
protected override void Render(HtmlTextWriter output)
{
 output.Write("<INPUT TYPE=submit name=" this.UniqueID "Value='Click Me' />");
}

如上代码所示,在控件呈现方法Render中,呈现了一个按钮,其name属性值为UniqueID。只有为引起回传的控件的name属性分配了UniqueID,才能够正确实现捕获回传事件。

第三、实现事件属性结构。

事件属性结构是一种优化的事件实现方式。在介绍之前,我们首先看看常见的控件事件实现方式。具体代码如下所示。

以下为引用的内容:
......
public class WebCustomControl:WebControl,IPostBackEventHandler{
 //声明Click事件委托
 public event EventHandler Click;
 //实现RaisePostBackEvent方法
 void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) {
  OnClick(EventArgs.Empty);
 }
 //定义OnClick事件处理程序
 protected virtual void OnClick(EventArgs e) {
  if(Click != null) { Click(this,e); }
 }
 ......
}

在以上代码中,包括了与事件定义相关的三个关键内容:一、定义Click事件委托;二、控件类实现了IPostBackEventHandler接口,其中当实现接口成员方法RaisePostBackEvent过程中,定义了事件处理程序OnClick;三、实现OnClick事件处理程序。以上实现方法简单易用,然而却存在一个缺点,即执行效率低。尤其是在一个类中引发多个事件的情况下,将会增加开销,浪费大量服务器资源,最终导致运行效率降低。

为了解决以上问题,下面介绍一种优化的事件实现方式--事件属性结构。该结构使用System.ComponentModel.EventHandlerList类,这个类提供一个简单的委托列表。通过使用该类所提供的相关方法,开发人员能够灵活的操作控件的事件处理程序委托列表。例如,控件中的Click事件,使用事件属性结构如下:

以下为引用的内容:
protected static readonly object EventClick = new object();
public event EventHandler Click{
 add {
  Events.AddHandler(EventClick,value);
 }
 remove {
  Events.RemoveHandler(EventClick,value);
 }
}

在事件属性结构定义之前,首先需要定义Click事件委托对象。由于每个事件仅创建一次,因此,需要声明为静态和只读的。然后,在属性结构中通过AddHandler、RemoveHandler方法操作事件处理程序委托列表。当页面调用Click事件时,它向控件的EventHandlerList集合中添加或者删除处理程序。由于这种实现方法,在多个事件的声明过程中比普通的实现方法效率高,因此是非常值得推荐的方法。

另外,在OnClick方法的实现过程中,当用一个事件属性时,必须从EventHandlerList中取回委托,并将其转换成EventHandler的类型。

以下为引用的内容:
protected virtual void OnClick(EventArgs e){
 EventHandler clickHandler = (EventHandler)Events[EventClick];
 if(clickHandler != null) {
  clickHandler(this,e);
 }
}

请读者注意:事件属性结构不适用于VB.NET语言,只能在C#等语言中应用。

2、典型应用

实事求是的讲,以上捕获回传事件的理论介绍对于从未实现过服务器控件事件的读者而言,有些难以理解。为此,本小节通过一个典型的示例来具体说明捕获回传事件的实现方法。

本例实现了一个自定义服务器控件WebCustomControl。该控件虽然呈现为一个按钮外观,但是其并不是从Button类继承而来。当单击该按钮时,控件将引起回传,服务器端自动捕获回传的单击事件,并且引发Click事件,执行对应事件处理程序。下面是服务器控件实现的源代码代码:

以下为引用的内容:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebControlLibrary{ [DefaultEvent("Click")]
[ToolboxData("<{0}:WebCustomControl runat=server></{0}:WebCustomControl>")]
public class WebCustomControl : WebControl, IPostBackEventHandler {
 // 定义一个Click事件委托对象
 private static readonly object EventClick = new object();
 //实现Click事件属性
 [Description("Click事件属性"), Category("Action") ]
 public event EventHandler Click {
  add {
   Events.AddHandler(EventClick, value);
  }
  remove {
   Events.RemoveHandler(EventClick, value);
  }
 }
 
 // 重写控件呈现方法RenderContents

 protected override void RenderContents(HtmlTextWriter output) {
  output.Write("<input type='submit' name=" this.UniqueID " value=请单击 />");
 }
 //实现事件方法
 protected virtual void OnClick(EventArgs e) {
  EventHandler clickHandler = (EventHandler)Events[EventClick];
  if (clickHandler != null) {
   clickHandler(this, e);
  }
 }
 // 实现IPostBackEventHandler接口成员
 void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) {
  OnClick(EventArgs.Empty);
 }
}
}

在WebCustomControl类中,实现了以下有关捕获回传事件处理的关键内容:

·控件类WebCustomControl实现IPostBackEventHandler;

·将引发回传的控件的name属性值设置UniqueID;

·实现事件属性结构,维护事件处理程序委托列表;

·在RaisePostBackEvent方法中调用OnClick方法;

下面的代码是应用自定义按钮WebCustomControl的Default.aspx源代码,显示效果如图1和图2所示。

以下为引用的内容:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="cc" Namespace="WebControlLibrary" Assembly="WebControlLibrary" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
 void wcc1_Click(object sender, EventArgs e) {
  message.Text = "您刚才点击了上面的按钮";
 }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>捕获回传事件</title>
</head>
<body>
 <form id="form1" runat="server">
 <center>
  <cc:WebCustomControl ID="wcc1" runat="server" OnClick="wcc1_Click" /> <br /> <br />
  <asp:Label ID="message" runat="server"></asp:Label>
 </center>
</form>
</body>
</html>

 
另外,还有一个与捕获回传事件密切相关的属性AutoPostBack。该属性用于控件的自动回传设置,很多标准的服务器控件中均包含该属性。对于开发人员来讲,是否需要在自行创建的服务器控件中定义该属性是很重要的,需要根据控件的功能需求认真考虑取舍。该属性的关键代码实现如下:

以下为引用的内容:
//定义属性AutoPostBack
public bool AutoPostBack{
 set {
  this._autoPostBack = value;
 }
 get {
  return this._autoPostBack;
 }
}
//在Render方法中添加Page.GetPostBackEventReference()方法
protected override void Render(HtmlTextWriter output){
 ......
 if(this.AutoPostBack) {
  writer.WriteAttribute("ontextchanged","javascript:" Page.GetPostBackEventReference(this));
 }
 ......
}

由以上代码可知,AutoPostBack属性的实现重点是Page.GetPostBackEventReference方法的应用。该方法获取对客户端脚本函数的引用,调用该函数将使服务器发送回该页,并返回一段表示客户端事件的字符串,实际是一些客户端代码。当AutoPostBack="true"时,服务器控件将发生自动回传,而不需通过Click事件等引发;当AutoPostBack="false",则回传必须经过类似Click的事件引发。

以上介绍的是有关捕获回传事件的具体实现方法。总体来讲不是非常复杂,然而,实现捕获回传事件的具体应用非常灵活,远远没有这么简单,这就需要读者不断的实践才能深入理解。

3、小结

本文首先介绍了利用ASP.NET 2.0技术,为自定义服务器控件实现捕获回传事件的实现方法。通过这些内容,相信读者可以基本掌握实现控件捕获回传事件的方法。在随后的文章中,笔者将继续介绍实现事件处理的另一核心内容--处理回传数据。

分享:保护你的DLL和Code不被别人使用
大家做项目开发一般都是分层的,比如UI层,业务层,数据访问层。业务层引用数据访问层的DLL(比如dataAccess.dll),并使用dataAccess.dll中的方法。当项目完成并给客户用了,可有些心里BT的客户

来源:模板无忧//所属分类:.Net教程/更新时间:2008-08-22
loading.. 评论加载中....
相关.Net教程
闂傚倸鍊搁崐鐑芥倿閿曞倹鍎戠憸鐗堝笒閺勩儵鏌涢弴銊ョ仩闁搞劌鍊垮娲敆閳ь剛绮旈悽绋跨;闁靛牆顦伴悡娑㈡煕閵夈劌鐓愮紒鑸电〒缁辨挸顓奸崱娆忊拰闂佸搫鏈惄顖炲春閸曨垰绀冩い蹇庣椤矂姊绘担鐟扳枙闁衡偓鏉堚晜鏆滄俊銈呮噹妗呴梺鍛婃处閸ㄤ即宕¢搹顐$箚闁靛牆鍊告禍鐐箾鐎涙ḿ鐭嬮柛搴㈠▕閳ユ棃宕橀鍢壯囩叓閸ャ劍绀堥懖鏍⒒娴g儤鍤€闁搞倖鐗犻獮蹇涙晸閿燂拷
濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴欏焺閺佸銇勯幘璺烘瀾闁告瑥绻戦妵鍕箻閸楃偟浠肩紒鐐劤椤兘寮婚悢鍏煎€锋い鎺嶈兌娴煎洤鈹戦埄鍐ㄧ祷闁绘鎹囧濠氭晸閻樿尙锛滃┑鐘绘涧濞层劑濡存繝鍐瘈闁冲皝鍋撻柛鏇ㄥ幐婵洦绻涢敐鍛悙闁挎洦浜獮濠囨偐濞茬粯鏅㈡繝銏f硾濡绂嶉悙顒傜瘈闂傚牊渚楅崕鎰版煟閹捐泛鏋涢柡灞炬礉缁犳稒绻濋崘鈺冨絽闂備浇顕х换鎴︽偂閿熺姴钃熼柣鏃傚帶缁€鍕煏閸繃顥滄い蹇ユ嫹
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼噣鍩€椤掑﹦绉靛ù婊勭箞椤㈡ɑ銈i崘鈺冨幗闁硅壈鎻徊楣冨吹閳ь剟鏌f惔銏犲毈闁告ḿ鏅划鈺呮偄閻撳骸鑰垮┑鐐叉閸旀洘鎯旀繝鍐闁瑰鍋為悡锝囩磼閼搁潧鍝虹€殿喖顭烽弫鎰緞婵犲孩缍傞梻浣哥枃濡椼劑鎳楅懜闈涱嚤闁割偁鍎查埛鎴︽煟閻斿憡绶叉繛鍫氭櫊閺岀喖宕欓妶鍡楊伓
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼厾鎹㈠┑瀣闂傚牊绋掗崐顖炴⒒閸屾艾鈧嘲霉閸ヮ剦鏁嬮柡宥庡幖閸ㄥ倿骞栧ǎ顒€濡肩紒鈧€n偁浜滈柟鐐殔鐎氬懎顫濋懜纰樻嫽婵炶揪绲块悺鏃堝吹濞嗘挻鈷戦悽顖e枤閸掓澘鐣濋敐鍫濆姷妞わ附鐓¢幗鍫曟倷鐎靛摜顔曢梺鐟扮摠閻熴儵鎮橀鍫熺厱閻庯綆浜跺Ο鈧梺鍝勮閸旀垿骞冮妶澶婄<婵炴垶锕╂导锟�
闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨跺畷婵嗏枎閹捐泛绁︽繝鐢靛Т閸燁垶宕曢悢鍏肩厪濠电偛鐏濋崝銈夋煕閺冩挾鐣辨い顏勫暣婵″爼宕卞Δ鍐噯闂備胶枪閿曘倝骞楀⿰鍫濇瀬妞ゆ洍鍋撶€规洖銈稿鎾倷濞堝灝鏅i梻浣筋嚙鐎涒晝绮欓幒鎴犲箵闁秆勵殕閸庢鏌熼悜妯荤厸闁稿鎸鹃幉鎾礋椤掑偆妲扮紓鍌欐祰椤曆囨偋閹炬剚鍤曟い鎰剁畱缁犺崵绱撴担鑲℃垵鈻嶉姀銈嗏拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚�
闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨跺畷婵嗏枎閹捐泛绁︽繝鐢靛Т閸燁垶宕曢悢鍏肩厪濠电偛鐏濋崝銈夋煕閺冩挾鐣辨い顏勫暣婵″爼宕卞Δ鈧ḿ鎴︽⒑缁嬫鍎愰柟鐟版喘瀵鈽夊鍡樺兊濡炪倖甯掗ˇ顖炲礈瀹曞洨纾藉〒姘搐閺嬫盯鏌ㄩ弴銊ら偗鐎殿噮鍋婂畷鎺楁倷閼碱剦妲堕柣鐔哥矊缁绘﹢骞冮敓鐘茬缂備焦岣块崢浠嬫煙閸忓吋鍎楅柛銊ュ暱閻f繂鈽夐姀锛勫幐闂佸憡渚楅崰姘辩不閻愮儤鐓欐い鏍ㄤ亢鐎氫即鏌嶇拠鏌ュ弰妤犵偛顑夐幃鈺冨枈婢跺矂妫峰┑鐘垫暩閸嬬偤骞愭繝姘殞濡わ絽鍟弲婵嬫煏婢诡垪鍋撻柛瀣尭椤繈鎮欓鈧锟�
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛焊娴煎瓨鐓忛柛銉戝喚浼冮悗娈垮枙缁瑦淇婂宀婃Х濠碘剝褰冮悧鎾愁潖閻戞ê顕辨繛鍡楃箳濡诧綁姊洪棃鈺冪Ф缂傚秳绀侀锝囨嫚濞村顫嶅┑鈽嗗灦閺€閬嶅棘閳ь剟姊绘担鍝ョШ闁稿锕ョ粋宥夋倷閻戞ê娈戦梺鎯х箰濠€杈╁閽樺褰掓晲婢跺閿繝寰枫倕袚濞e洤锕幃娆撴嚋濞堟寧顥夋俊鐐€栧ú鈺冪礊娴i€涚箚闁归棿绀侀悡娑樷攽閻樻彃鏆炴繛鍛墬缁绘繈鎮介棃娑楃捕濠碘槅鍋呴悷鈺佺暦瑜版帗鍋ㄩ柣銏㈡暩閻e爼姊虹捄銊ユ灁濠殿喚鏁婚崺娑㈠箣閿旂晫鍘卞┑鐘绘涧濡顢旈埡鍛厓鐟滄粓宕滃▎鎾偓锕傛倻閻e苯绁︽繝鐢靛Т濞层倗绮绘繝姘厾闁告稑饪撮崯蹇旂箾閼测晛鏋涙慨濠呮閹瑰嫰濡搁妷锔惧綒闂備胶鎳撻崵鏍箯閿燂拷
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剟鎮块鈧弻锝呂旈埀顒勬偋婵犲洤鐭楅煫鍥ㄦ惄濞撳鎮楅敐搴濈凹闁圭櫢绲跨槐鎺楀焵椤掍胶绡€闁稿被鍊楅崬鐢告⒑閸忓吋鍊愭繛浣冲嫭鍙忛柛顐犲劜閻撶喖鏌熼崹顔碱伀缂佸鍣i弻鐔碱敊濞嗙偓缍堝┑鐐碘拡娴滎亪鐛箛鎾舵殕濠电姴鍊搁煢婵犵數濮烽弫鎼佸磻濞戙垺鍎戝ù鍏兼綑绾惧綊鏌¢崶銉ョ仾缂佺姵甯″缁樻媴閻熼偊鍤嬬紓浣筋嚙閸婃瓕鐏嬪┑鐐叉閸ㄥ綊鎯岄崱娑欑厓鐟滄粓宕滈悢濂夋綎婵炲樊浜滃婵嗏攽閻愬顣查柛銊ユ健楠炲啳顦归柟顔规櫊閹崇娀顢楁担璇″晭闂傚倷娴囬~澶嬬珶閸℃ɑ娅犳俊銈呮噹閻ら箖鏌熼梻瀵稿妽闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐睬庨崶褝韬い銏$☉椤繈顢楁担绯曞亾椤栫偞鐓熼幖娣灪閻ㄦ垹绱掗鍛仸濠碉紕鏁诲畷鐔碱敍濮橀硸鍟嬮梺璇查叄濞佳囧箺濠婂牊鍋╂繛宸簼閻撶喖骞栧ǎ顒€鐏柛鐔哥叀閺岀喖宕欓妶鍡楊伓
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀悙钘変划閻庤娲栭悥鍏间繆閹间礁唯妞ゆ棁宕电粚鎸庣節绾板纾块柛瀣灴瀹曟劙寮介鐐殿唶闂佺厧顫曢崐鏍х暦閺屻儲鐓曢柟鏉垮悁缁ㄦ挳鏌涚€n偅灏い顐g箞閹煎綊顢曢妶鍛敪婵犵數鍎戠徊钘壝洪妶澶嬫櫇妞ゅ繐鐗勯埀顑跨閳藉螣濠婂嫭顥堥柛鈹惧亾濡炪倖甯婇悞锕€鈻嶉悩缁樼厱婵炲棗娴氬Σ铏圭磼閳锯偓閸嬫挻淇婇悙顏勨偓銈夊磻閹烘绐楁俊銈呭暊閸嬫挸顫濋悙顒€顏�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕у锕傦綖婢跺⊕娲晝閸屾氨顦梺缁樻⒒椤戞洟鍩€椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌濋梻鍌欒兌缁垶骞愰崫銉ㄥС闁割偅娲栫壕濠氭煙閸撗呭笡闁稿鍔戦弻娑樷槈濮楀牆濮涢梺鍛娚戦幃鍌氼潖濞差亜绀堥柟缁樺笂缁ㄨ偐绱撴担绛嬪殭閻庢凹鍓熼幃娲敇閻愨晜鏂€闂佺粯蓱閸撴岸宕箛娑欑厱闁挎繂楠搁悘锔筋殽閻愯尙绠婚柡浣规崌閺佹捇鏁撻敓锟�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂傚倸鍊风粈渚€骞栭锔藉殣妞ゆ牜鍋涚粻鐘虫叏濡炶浜鹃悗瑙勬礃濡炰粙宕洪埀顒併亜閹哄秹妾峰ù婊勭矒閺岀喖宕崟顒夋婵炲瓨绮撶粻鏍ь潖閾忓厜鍋撻崷顓烆€岄柛銈嗙懇濮婅櫣鏁鍓滈梺缁樹緱閸o綁鐛€n喗鏅濋柍褜鍓涚划璇测槈閵忊檧鎷婚梺鍓插亞閸犳捇鍩婇弴鐔翠簻闁哄倹瀵чˉ銏℃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崘銊ュ闂備浇顕х€涒晝鍠婂澶婄畺闁稿瞼鍋熷畵渚€鐓崶銊р姇闁哄懏鎮傞弻銊╂偆閸屾稑顏�
婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕у锕傦綖婢跺⊕娲煛閸愵亞顦繛鎾村焹閸嬫捇鏌e☉鍗炴灓闁逞屽墾缂嶅棙绂嶉弽顓炵哗濞寸姴顑嗛悡鏇熴亜閹伴潧浜滃ù婊勵殘缁辨帡骞夌€n偄顏�
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楃瑨閻庢艾鍢茶灋闁瑰濮风壕濂稿级閸碍娅呭ù鐘崇矋閵囧嫰骞橀崘鍙夊€悗鍨緲鐎氼厾鎹㈠┑瀣妞ゆ挾鍋涚粻鎴︽⒒閸屾艾鈧兘鎳楅崼鏇炵疇闁瑰墽绮崑銈夋煏婵炑冨鎼村﹪姊洪崨濠冨闁搞劌銈稿顐﹀磼閻愭潙鈧灚绻涢幋鐑嗕痪闁兼祴鏅滃畷鏌ユ煕閳╁叇婊勭濠婂牊鐓涚€广儱娴烽崢娑欑箾閸喐鐓ユい顓″劵椤﹁尙鈧鍠栨晶搴ㄥ箲閵忕姭鏀介悗锝呭缁嬪繐顪冮妶鍡橆梿婵☆偄瀚伴、鏃堟晸閿燂拷
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃酣銆冮妷鈺佺濞达絿枪閸嬪秴鈹戦悩璇у伐闁绘妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛娓氭宕曢幇鐗堢厱閻庯綆浜堕崕鏃堟煛瀹€鈧崰鏍嵁閸℃稒鍋嬮柛顐亝椤ュ姊绘担瑙勩仧闁告ü绮欓妴鍐川閺夋垹鍘撮梺纭呮彧闂勫嫰宕戦幇鐗堢厵缂備焦锚缁楁碍绻涢崼顐㈠籍婵﹦鍎ょ缓浠嬪川婵犲啴鏁紓鍌氬€哥粔鎾晝椤忓嫷鍤曞┑鐘宠壘鍥存繝銏f硾椤戝懎鈻撻悢鍏尖拺闂傚牊渚楀Σ鍫曟煕鎼淬劋鎲鹃柨婵堝仜椤撳吋寰勭€Q勫缂傚倸鍊烽悞锕€鐜婚幐搴g彾闁告洦鍘剧壕鐣屸偓骞垮劚鐎氼噣藝閿曞倹鐓熼柨婵嗘噹濡插鏌嶇拠鏌ュ弰妤犵偞岣块埀顒佺⊕钃辨い蹇曞枛濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�
UB闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝夋交閼板潡寮堕崼姘珔闁搞劍绻冮妵鍕冀椤愵澀绮剁紓浣插亾濠㈣泛顑勭换鍡涙煏閸繃鍣洪柛锝囨櫕閳ь剝顫夐幐椋庢濮樿泛钃熸繛鎴欏灩鍞梺闈涚箚閸撴繈鎮甸弴銏$厽閹兼番鍨婚。鑼偓鍏夊亾闁归棿绀佺粻鏍ㄤ繆閵堝倸浜鹃梺瀹犳椤︻垶鍩㈠澶嬫優妞ゆ劑鍨绘导宀勬⒑閹稿海绠橀柛瀣ㄥ€濆顐﹀箻缂佹ɑ娅㈤梺璺ㄥ櫐閹凤拷
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊閵娧呭骄闂佸壊鍋嗛崰鍡樼閸垻纾奸悗锝庡亽閸庛儲绻涢崗鑲╁ⅹ闁宠鍨块幃鈺佺暦閸ヨ埖娈归梻浣虹帛鐢紕绮婚弽顓炵畺婵°倕鎳忛崑銊╂煟閵忋垹浠柍褜鍓欓敃顏堝蓟濞戞埃鍋撻敐搴′簼鐎规洖鐭傞弻锝呪槈閸楃偞鐝濋悗瑙勬礀缂嶅﹪銆佸▎鎾崇煑闁靛/鍕剁础濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柣鎾卞劦閺岋綁寮撮悙娴嬪亾閸︻厸鍋撳鐐
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃酣銆冮妷鈺佷紶闁靛/鍌滅憹闁诲骸绠嶉崕閬嵥囬鐐插瀭闁稿瞼鍋為悡鏇熺節闂堟稒顥滄い蹇曟暬閺屻倝寮堕幐搴′淮闂佸搫鏈惄顖涙叏閳ь剟鏌曡箛鏇炐fい鏃撴嫹
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸崹楣冨箛娴e湱绋佺紓鍌氬€烽悞锕佹懌闂佸憡鐟ョ换鎰扳€旈崘顏佸亾閿濆簼绨奸柟鐧哥悼缁辨帡鍩€椤掍胶绡€闁稿被鍊楅崬鐢告煟閻樿崵绱版繛鍜冪秮閹﹢鏌嗗鍡欏幈濠德板€撻懗鍫曘€傞懠顒傜<缂備焦岣垮ú瀵糕偓瑙勬礀瀹曨剝鐏冮梺閫炲苯澧存い銏☆殜婵偓闁靛牆妫涢崢閬嶆⒑缂佹ê濮囨俊顖氾工鍗遍柛锔诲幘绾捐偐绱撴担璐細闁靛棙甯炵槐鎺撴綇閵娧勫櫚闂佽鍠掗弲鐘茬暦椤愶箑绀嬫い鎰╁灱閸橆偊姊婚崒姘偓鐑芥嚄閼哥數浠氬┑掳鍊楁慨瀵告崲濮椻偓閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮撮悙娴嬪亾瑜版帒纾婚柨鐔哄У閻撱儵鏌¢崶鈺佷粶闁逞屽墯閹倸鐣疯ぐ鎺戠<婵炴垶姘ㄩ惁鍫熺節閻㈤潧孝闁稿﹥鎮傞、鏃堫敃閿濆啩绨婚梺鍐叉惈閹冲繘寮柆宥嗙厪闁搞儜鍐句純濡ょ姷鍋炵敮鎺楊敇婵傜ǹ鐐婇柤鍛婃櫕濠婂懐纾介柛灞剧懅閸斿秶鎲搁弶鍨殭闁挎洏鍨介弻鍡楊吋閸涱垰濮︽俊鐐€栫敮鎺楀磹閸涘﹦顩锋い鏍仦閻撴洖鈹戦悩鎻掓殶缂佺姵岣跨槐鎺撴綇閵婏箑纰嶅銈庡亝缁诲啴鏁嶉幇顑芥斀闁搞儯鍔嶉悵锕傛⒒閸屾瑦绁版繛澶嬫礋瀹曟娊鏁冮崒姘鳖唵闂佽法鍣﹂幏锟�
©2017 www.mb5u.com婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋婵堚偓顓烆渻閵堝懐绠伴柣妤€妫涚划鍫ュ醇閻旇櫣鐦堥梻鍌氱墛缁嬫帡鏁嶅澶嬬厽闁哄倹瀵чˉ鐐烘煙娓氬灝濡兼い顏勫暟閹风娀鐓鐑嗘闂備浇顕х€涒晠顢欓弽顓為棷妞ゆ洍鍋撶€规洘濞婇弫鎰緞婵犲嫮鏆梻浣稿暱閹碱偊骞婃惔锝囦笉闁汇垹鎲¢悡娆撴煟閹寸倖鎴犱焊椤撱垺鐓熼柨鏂垮悑鐎氾拷
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇熺節濮橆剛顔嗛梺璺ㄥ櫐閹凤拷&闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸弫宥夊礋椤掍焦顔囬梻浣告贡閸庛倝宕甸敃鈧埥澶愬閻樼數娼夐梻浣稿閸嬪棝宕抽妷銉庢盯宕ㄧ€涙ǚ鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷
QQ缂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕閻庢鍠氶弫濠氥€佸Δ鍛劦妞ゆ帒瀚ч埀顒佹瀹曟﹢顢欓挊澶屾濠电姰鍨归崢婊堝疾濠婂牊鍎庢い鏍仜閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剛澹曢崷顓犵=濞达綀鍋傞幋婵冩瀺闁绘ê鍘栫换鍡涙煏閸繂鈧憡绂嶉幆褜娓婚柕鍫濋娴滄繄绱掔拠鑼ⅵ闁靛棔绀侀埢搴ㄥ箣濠靛洨鈧娊姊洪崨濠庢畼闁稿鍋ら、娆撳磼濞戞绠氶梺缁樺姦娴滄粓鍩€椤掍胶澧い顐㈢箲缁绘繂顫濋鈧崑宥夋偡濠婂啰绠绘鐐差樀楠炴﹢顢欓懞銉︻仧闂備浇娉曢崳锕傚箯閿燂拷闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀閸屻劎鎲搁弮鍫濈畺婵☆垯璀﹀ḿ鈺傘亜閹烘垵鈧懓鈻撻幆褉鏀芥い鏂款潟娴犳粓鏌涚€n偅灏伴柕鍥у婵偓闁挎稑瀚崳浼存倵鐟欏嫭绀€鐎规洦鍓濋悘鍐╃節閻㈤潧孝闁稿﹤缍婇、娆撳磼濞戞绠氶梺缁樺姦娴滄粓鍩€椤掍胶澧い顐㈢箲缁绘繂顫濋鈧崑宥夋偡濠婂啰绠绘鐐差樀楠炴﹢顢欓懞銉︻仧闂備浇娉曢崳锕傚箯閿燂拷濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴欏灪閸嬨倝鏌曟繛褍鍟悘濠囨椤愩垺澶勯柟灏栨櫅闇夐柡宥庡幗閻撳繐鈹戦悙鑼虎闁告挸澧介幉鍛婃償閳藉棗娈梺鍛婃处閸嬪棝寮抽崱娑欑厓鐟滄粓宕滃☉娆戠彾闁哄洨鍠嗛崑鍛存煕閹般劍娅囬柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹闂傚倸鍊峰ù鍥敋瑜忛埀顒佺▓閺呯娀銆佸▎鎾冲唨妞ゆ挾鍋熼悰銉╂⒑閸︻厼鍔嬫い銊ユ噽婢规洘绻濆顓犲幍闂佺顫夐崝鏇㈠触瑜版帗鐓曟繛鍡樺姈瀹曞矂鏌$仦鍓ф创濠碉紕鍏橀獮瀣攽閸℃ɑ顔夋繝鐢靛仜閻楀棙鏅舵惔锝嗩潟闁规崘顕х壕鍏兼叏濡顣抽柡瀣焸濮婃椽鎮烽弶鎸庮唨闂佺懓鍤栭幏锟�闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垹绮堢€n偁浜滈柟鎵虫櫅閻忊晝鎮鈧缁樻媴缁涘娈┑顔斤公缁犳捇鏁愰悙鏉戠窞閻庯綆鍓涢鏇熺節閻㈤潧孝婵炲眰鍔岄悾鍨瑹閳ь剟寮婚垾宕囨殼妞ゆ梻鎳撴禍楣冩⒑閸撴彃浜藉ù婊庝邯瀵鈽夐姀鐘靛姶闂佸憡鍔曢妵妯兼闂堟稈鏀介柍钘夋娴滈箖鏌熼崙銈嗗濠电姷鏁告慨鐑藉极閸涘﹥鍙忓ù鍏兼綑閸ㄥ倿鏌i幘宕囧哺闁哄鐗楃换娑㈠箣閻愬娈ら梺娲诲幗閹瑰洭寮婚悢铏圭<闁靛繒濮甸悘鍫ユ⒑閸濆嫬顏ラ柛搴″级缁岃鲸绻濋崶顬囨煕濞戝崬骞楁繛鍫濆缁辨帗銈i崘顏嗘毇缂備胶濮甸悧鐘差嚕婵犳碍鍋勯悶娑掆偓鍏呭濠电偞鍨堕悷锛勭磽濮樿京纾奸柣妯虹-婢ц京绱掓潏銊ョ闁归濮鹃ˇ鎶芥倵濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠煕濮橆厽銇濋柡浣稿暣閸┾偓妞ゆ巻鍋撻柣婊冾煼瀹曞綊顢欑憴鍕偓濠氭⒑鐟欏嫬鍔ょ紒澶嬫綑鐓ゆい鎾卞灩閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓...