以下為控件的主要部分 (ui 部分)
通知使用基于合成的實(shí)現(xiàn)的服務(wù)器控件創(chuàng)建它們包含的任何子控件,以便為回發(fā)或呈現(xiàn)做準(zhǔn)備。
protected overrides sub createchildcontrols()sub createchildcontrols()
controls.clear()
labpageinfo = new label()
labpageinfotext_01 = new label
labpageinfotext_01.text = "每頁"
txtpagesize = new textbox
txtpagesize.id = "txtpagesize"
txtpagesize.width = 66
labpageinfotext_02 = new label
labpageinfotext_02.text = "條記錄"
labpageinfotext_03 = new label
labpageinfotext_03.text = "轉(zhuǎn)到"
labpageinfotext_04 = new label
labpageinfotext_04.text = "頁"
txtpageindex = new textbox
txtpageindex.id = "txtpageindex"
txtpageindex.width = 66
ibgotopage = new imagebutton
ibgotopage.id = "ibgotopage"
ibgotopage.width = 60
ibgotopage.height = 20
addhandler ibgotopage.click, addressof ibgotopage_click
lbgotopage = new linkbutton
lbgotopage.id = "lbgotopage"
lbgotopage.text = "轉(zhuǎn)到"
addhandler lbgotopage.click, addressof lbgotopage_click
lbfirstpage = new linkbutton
lbfirstpage.id = "lbfirstpage"
lbfirstpage.text = "首頁"
addhandler lbfirstpage.click, addressof lbfirstpage_click
lbprevpage = new linkbutton
lbprevpage.id = "lbprevpage"
lbprevpage.text = "上頁"
addhandler lbprevpage.click, addressof lbprevpage_click
lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章 = new linkbutton
lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章.id = "lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章"
lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章.text = "下頁"
addhandler lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章.click, addressof lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章_click
lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章 = new linkbutton
lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章.id = "lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章"
lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章.text = "末頁"
addhandler lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章.click, addressof lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章_click
me.controls.add(labpageinfo)
me.controls.add(labpageinfotext_01)
me.controls.add(txtpagesize)
me.controls.add(labpageinfotext_02)
me.controls.add(labpageinfotext_03)
me.controls.add(txtpageindex)
me.controls.add(ibgotopage)
me.controls.add(lbgotopage)
me.controls.add(lbfirstpage)
me.controls.add(lbprevpage)
me.controls.add(lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章)
me.controls.add(lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章)
end sub
重寫控件的輸出。
protected overrides sub render()sub render(byval writer as htmltextwriter)
addattributestorender(writer)
writer.addattribute(htmltextwriterattribute.cellpadding, "1", false)
writer.addattribute(htmltextwriterattribute.width, "100%", false)
writer.renderbegintag(htmltextwritertag.table)
writer.renderbegintag(htmltextwritertag.tr)
writer.renderbegintag(htmltextwritertag.td)
writer.addstyleattribute(htmltextwriterstyle.width, "50%")
labpageinfo.text = "共 " & recordcount & "條記錄 共 " & pagecount & " 頁 當(dāng)前第" & currentpageindex & "頁"
labpageinfo.rendercontrol(writer)
writer.renderendtag()
writer.renderbegintag(htmltextwritertag.td)
writer.addstyleattribute(htmltextwriterstyle.width, "50%")
labpageinfotext_01.rendercontrol(writer)
writer.writeline(" ")
txtpagesize.rendercontrol(writer)
writer.writeline(" ")
labpageinfotext_02.rendercontrol(writer)
writer.writeline(" ")
if gotostyle = stylegoto.imagebutton then
labpageinfotext_03.rendercontrol(writer)
else
lbgotopage.rendercontrol(writer)
end if
writer.writeline(" ")
txtpageindex.rendercontrol(writer)
writer.writeline(" ")
labpageinfotext_04.rendercontrol(writer)
if gotostyle = stylegoto.imagebutton then
ibgotopage.attributes.add("onmouseover", "this.src='" + hoverimageurl + "';")
ibgotopage.attributes.add("onmouseout", "this.src='" + defaultimageurl + "';")
ibgotopage.attributes.add("onmousedown", "this.src='" + pressedimageurl + "';")
ibgotopage.rendercontrol(writer)
end if
writer.writeline(" ")
lbfirstpage.rendercontrol(writer)
writer.writeline(" ")
lbprevpage.rendercontrol(writer)
writer.writeline(" ")
lb下一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第三章.rendercontrol(writer)
writer.writeline(" ")
lb上一頁:asp.net 2.0 自定義控件的開發(fā)之?dāng)?shù)據(jù)分頁 第一章.rendercontrol(writer)
writer.renderendtag()
writer.renderendtag()
writer.renderendtag()
end sub
由復(fù)合控件的標(biāo)準(zhǔn)設(shè)計(jì)器用于在設(shè)計(jì)時(shí)重建控件樹。
msdn 中的解釋重新創(chuàng)建派生自 compositecontrol 的控件的子控件。
protected overrides sub recreatechildcontrols()sub recreatechildcontrols()
ensurechildcontrols()
end sub
數(shù)據(jù)庫分頁部分,后面將給出分頁的sql server 存儲(chǔ)過程。
protected function gotopage()function gotopage() as datatable
dim dt as new datatable()
conn = new sqlconnection(sqlconnection)
conn.open()
using conn
dim command as new sqlcommand
command.connection = conn
command.commandtext = storedprocedurename
command.commandtype = commandtype.storedprocedure
dim parameter as sqlparameter
parameter = command.parameters.add("@table", sqldbtype.nvarchar)
parameter.value = tablename
parameter = command.parameters.add("@primarykeyfield", sqldbtype.nvarchar)
parameter.value = primarykeyfield
parameter = command.parameters.add("@field", sqldbtype.nvarchar)
parameter.value = field
parameter = command.parameters.add("@where", sqldbtype.nvarchar)
parameter.value = where
parameter = command.parameters.add("@groupby", sqldbtype.nvarchar)
parameter.value = groupby
parameter = command.parameters.add("@orderby", sqldbtype.nvarchar)
parameter.value = orderby
parameter = command.parameters.add("@pagenumber", sqldbtype.nvarchar)
parameter.value = currentpageindex
parameter = command.parameters.add("@pagesize", sqldbtype.nvarchar)
parameter.value = pagesize
parameter = command.parameters.add("@recordcount", sqldbtype.int)
parameter.direction = parameterdirection.output
command.executenonquery()
intrecordcount = command.parameters("@recordcount").value
viewstate("recordcount") = intrecordcount
viewstate("pagecount") = fix(intrecordcount / pagesize) + 1
dim da as new sqldataadapter(command)
da.fill(dt)
return dt
end using
end function
數(shù)據(jù)綁定代碼
public overrides sub databind()sub databind()
'查找頁面中的gridview及datalist并綁定數(shù)據(jù)
dim objgridview as new gridview
dim objdatalist as new datalist
if controltopaginate = "" then
exit sub
end if
_controltopaginat = page.findcontrol(controltopaginate)
if (_controltopaginat is nothing) then
exit sub
end if
if (typeof _controltopaginat is gridview) then
objgridview = ctype(_controltopaginat, gridview)
objgridview.datasource = gotopage()
objgridview.databind()
end if
if (typeof _controltopaginat is datalist) then
objdatalist = ctype(_controltopaginat, datalist)
objdatalist.datasource = gotopage.defaultview
objdatalist.databind()
end if
end sub
新聞熱點(diǎn)
疑難解答
圖片精選