引发自定义控件LoadPostData方法的必要条件!

发表于:2007-06-30来源:作者:点击数: 标签:
自定义控件要引发LoadPostData方法,需要包含一个ID为this.UniqueID的控件 可在控件组中加入一个Hidden控件! writer.Write(input type=@#hidden@# name=@# + me.UniqueID + @#) 或者干脆更简单的做法,把submit的name属性设置为me.UniqueID Imports System.Co
自定义控件要引发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



原文转自:http://www.ltesting.net