自定义控件要引发LoadPostData方法,需要包含一个ID为this.UniqueID的控件 可在控件组中加入一个Hidden控件! writer.Write("") 或者干脆更简单的做法,把submit的name属性设置为me.UniqueID Imports System.ComponentModel Imports System.Web.UI Imports System.Web.UI.WebControls {0}:Login>")> Public Class Login Inherits System.Web.UI.WebControls.WebControl Implements IPostBackDataHandler Public Event CheckError As EventHandler Private _user As String Private _pass As String Public Function LoadPostData(ByVal postDataKey As String, ByVal postCollection As System.Collections.Specialized.NameValueCollection) As Boolean Implements System.Web.UI.IPostBackDataHandler.LoadPostData _user = CType(postCollection(Me.UniqueID & ":User"), String) _pass = CType(postCollection(Me.UniqueID & ":Pass"), String) If _user <> _pass Then Return True Else Return False End If End Function Public Sub RaisePostDataChangedEvent() Implements System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent OnCheckError() End Sub Public Sub OnCheckError() RaiseEvent CheckError(Me, New System.EventArgs()) End Sub Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) writer.RenderBeginTag(HtmlTextWriterTag.Table) writer.RenderBeginTag(HtmlTextWriterTag.Tr) writer.RenderBeginTag(HtmlTextWriterTag.Td) writer.Write("用户名:") writer.RenderEndTag() writer.RenderBeginTag(HtmlTextWriterTag.Td) writer.AddAttribute(HtmlTextWriterAttribute.Type, "TextBox")