自定义控件要引发LoadPostData方法,需要包含一个ID为this.UniqueID的控件
可在控件组中加入一个Hidden控件!
writer.Write("<input type='hidden' name='" + me.UniqueID + "'>")
或者干脆更简单的做法,把submit的name属性设置为me.UniqueID
Imports System.ComponentModel Imports System.Web.UI Imports System.Web.UI.WebControls <DefaultProperty("Text"), ToolboxData("<{0}:Login runat=server></{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") writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID & ":User") writer.AddAttribute(HtmlTextWriterAttribute.Maxlength, "30") writer.RenderBeginTag(HtmlTextWriterTag.Input) writer.RenderEndTag() writer.RenderEndTag() writer.RenderEndTag()
writer.RenderBeginTag(HtmlTextWriterTag.Tr) writer.RenderBeginTag(HtmlTextWriterTag.Td) writer.Write("密码:") writer.RenderEndTag() writer.RenderBeginTag(HtmlTextWriterTag.Td) writer.AddAttribute(HtmlTextWriterAttribute.Type, "Password") writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID & ":Pass") writer.AddAttribute(HtmlTextWriterAttribute.Maxlength, "30") writer.RenderBeginTag(HtmlTextWriterTag.Input) writer.RenderEndTag() writer.RenderEndTag() writer.RenderEndTag()
writer.RenderBeginTag(HtmlTextWriterTag.Tr) writer.AddAttribute(HtmlTextWriterAttribute.Cols, "2") writer.RenderBeginTag(HtmlTextWriterTag.Td) writer.AddAttribute(HtmlTextWriterAttribute.Type, "Submit") writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.UniqueID) writer.AddAttribute(HtmlTextWriterAttribute.Value, "提交") writer.RenderBeginTag(HtmlTextWriterTag.Input) writer.RenderEndTag() writer.RenderEndTag() writer.RenderEndTag() writer.RenderEndTag() End Sub End Class

|