自定义控件要引发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
