以下為控件的主要部分 (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)
疑難解答
圖片精選