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

类别:Asp 点击:0 评论:0 推荐:

自定义控件要引发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://com.8s8s.com/it/it8104.htm