|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
总共分三部分:。VB,Builder和Design Imports System.ComponentModel Imports System.web.UI.HtmlControls Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Data Imports System.Data.OracleClient <DefaultProperty("ChangePage"), ControlBuilderAttribute(GetType(ChangePageBuilder)), _ ParseChildren(False), PersistChildren(False), _ Designer(GetType(ChangePageDesigner)), _ ToolboxData("<{0}:ChangePage runat=server></{0}:ChangePage>")> Public Class ChangePage Inherits System.Web.UI.WebControls.Panel Implements INamingContainer Private WithEvents txtPage As newTextBox Private WithEvents btnFirst As newButton Private WithEvents btnNext As newButton Private WithEvents btnPrevious As newButton Private WithEvents btnLast As newButton Private WithEvents btnGo As newButton Private WithEvents lblNowPage As newLabel Private WithEvents lblAllPage As newLabel Private WithEvents lblAllItems As newLabel Private WithEvents lblPage As newLabel Private htmlTabel As Table Private htmlRow As TableRow Private isCreated As Boolean Private mDataGrid As String Public Event PageIndexChange As EventHandler Public Sub New() End Sub #Region "プロパティ" <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("?仕鳐堀骏螃quot;)> _ Public ReadOnly Property PageTextBox() As newTextBox Get Me.EnsureChildControls() Return txtPage End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("初??ボタン")> _ Public ReadOnly Property FirstPageButton() As newButton Get Me.EnsureChildControls() Return btnFirst End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("次??ボタン")> _ Public ReadOnly Property NextPageButton() As newButton Get Me.EnsureChildControls() Return btnNext End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("前??ボタン")> _ Public ReadOnly Property PrePageButton() As newButton Get Me.EnsureChildControls() Return btnPrevious End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("末??ボタン")> _ Public ReadOnly Property LastPageButton() As newButton Get Me.EnsureChildControls() Return btnLast End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("喵移ボタン")> _ Public ReadOnly Property ChangePageButton() As newButton Get Me.EnsureChildControls() Return btnGo End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("?F在の??ラベル")> _ Public ReadOnly Property NowPageLabel() As newLabel Get Me.EnsureChildControls() Return lblNowPage End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("合????ラベル")> _ Public ReadOnly Property AllPageLabel() As newLabel Get Me.EnsureChildControls() Return lblAllPage End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("合????目ラベル")> _ Public ReadOnly Property AllItemsLabel() As newLabel Get Me.EnsureChildControls() Return lblAllItems End Get End Property <DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _ NotifyParentProperty(True), PersistenceMode(PersistenceMode.InnerProperty), _ Category("ChildControl"), Description("??ラベル")> _ Public ReadOnly Property PageLabel() As newLabel Get Me.EnsureChildControls() Return lblPage End Get End Property <Category("Behavior"), Description("デ┼タグリッド??目のコントロ┼ル"), DefaultValue("")> _ Public Property DataGrid() As String Get Return mDataGrid End Get Set(ByVal Value As String) mDataGrid = Value End Set End Property #End Region Protected Overrides Sub CreateChildControls() htmlTabel = New Table htmlRow = New TableRow If txtPage Is Nothing Then isCreated = False txtPage = New newTextBox txtPage.ID = MyBase.ID & "_PageTextBox" Else isCreated = True End If If btnFirst Is Nothing Then isCreated = False btnFirst = New newButton btnFirst.ID = MyBase.ID & "_FirstPageButton" Else isCreated = True End If If btnNext Is Nothing Then isCreated = False btnNext = New newButton btnNext.ID = MyBase.ID & "_NextPageButton" Else isCreated = True End If If btnPrevious Is Nothing Then isCreated = False btnPrevious = New newButton btnPrevious.ID = MyBase.ID & "_PrePageButton" Else isCreated = True End If If btnLast Is Nothing Then isCreated = False btnLast = New newButton btnLast.ID = MyBase.ID & "_LastPageButton" Else isCreated = True End If If btnGo Is Nothing Then isCreated = False btnGo = New newButton btnGo.ID = MyBase.ID & "_ChangePageButton" Else isCreated = True End If If lblNowPage Is Nothing Then isCreated = False lblNowPage = New newLabel lblNowPage.ID = MyBase.ID & "_NowPageLabel" Else isCreated = True End If If lblAllPage Is Nothing Then isCreated = False lblAllPage = New newLabel lblAllPage.ID = MyBase.ID & "_AllPageLabel" Else isCreated = True End If If lblAllItems Is Nothing Then isCreated = False lblAllItems = New newLabel lblAllItems.ID = MyBase.ID & "_AllItemsLabel" Else isCreated = True End If If lblPage Is Nothing Then isCreated = False lblPage = New newLabel lblPage.ID = MyBase.ID & "_PageLabel" Else isCreated = True End If MyBase.CreateChildControls() If isCreated = False Then lblPage.Text = "??へ" btnFirst.Text = "初??" btnPrevious.Text = "前??" btnNext.Text = "次??" btnLast.Text = "末??" btnGo.Text = "喵移" lblNowPage.Text = "0" lblAllPage.Text = "/0??" lblAllItems.Text = " 全て:0件" txtPage.Width = Unit.Pixel(40) End If htmlTabel.CellPadding = 0 htmlTabel.CellSpacing = 0 htmlTabel.Rows.Add(htmlRow) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(0).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(0).Controls.Add(btnFirst) htmlRow.Cells(0).Controls.Add(btnPrevious) htmlRow.Cells(0).Controls.Add(btnNext) htmlRow.Cells(0).Controls.Add(btnLast) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(1).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(1).Controls.Add(txtPage) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(2).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(2).Controls.Add(lblPage) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(3).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(3).Controls.Add(btnGo) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(4).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(4).Controls.Add(lblNowPage) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(5).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(5).Controls.Add(lblAllPage) htmlRow.Cells.Add(New TableCell) htmlRow.Cells(6).HorizontalAlign = HorizontalAlign.Left htmlRow.Cells(6).Controls.Add(lblAllItems) MyBase.Controls.Add(htmlTabel) End Sub Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter) MyBase.EnsureChildControls() RenderChildren(output) End Sub Protected Overrides Sub AddParsedSubObject(ByVal obj As Object) Dim btnIdName As Array Dim lblIdName As Array If TypeOf obj Is newTextBox Then txtPage = obj End If If TypeOf obj Is newButton Then btnIdName = Split(CType(obj, newButton).ID.ToString, "_") Select Case btnIdName(1).ToString Case "FirstPageButton" Me.btnFirst = obj Case "NextPageButton" Me.btnNext = obj Case "PrePageButton" Me.btnPrevious = obj Case "LastPageButton" Me.btnLast = obj Case "ChangePageButton" Me.btnGo = obj End Select End If If TypeOf obj Is newLabel Then lblIdName = Split(CType(obj, newLabel).ID.ToString, "_") Select Case lblIdName(1).ToString Case "NowPageLabel" Me.lblNowPage = obj Case "AllPageLabel" Me.lblAllPage = obj Case "AllItemsLabel" Me.lblAllItems = obj Case "PageLabel" Me.lblPage = obj End Select End If End Sub Private Sub btnFirst_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFirst.Click MyBase.EnsureChildControls() If Not Page.FindControl(DataGrid) Is Nothing Then CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex = 0 txtPage.Text = "" RaiseEvent PageIndexChange(Me, e) Call NewPageDataBind() Else Throw New Exception(DataGrid & "を探し当てていない") End If End Sub Private Sub btnLast_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLast.Click Dim pageCount As Integer MyBase.EnsureChildControls() If Not Page.FindControl(DataGrid) Is Nothing Then pageCount = CType(Page.FindControl(DataGrid), DataGrid).PageCount CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex = _ Math.Max(pageCount - 1, 0) txtPage.Text = "" RaiseEvent PageIndexChange(Me, e) Call NewPageDataBind() Else Throw New Exception(DataGrid & "を探し当てていない") End If End Sub Private Sub btnNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNext.Click Dim currentPageIndex As Integer Dim pageCount As Integer MyBase.EnsureChildControls() If Not Page.FindControl(DataGrid) Is Nothing Then pageCount = CType(Page.FindControl(DataGrid), DataGrid).PageCount currentPageIndex = CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex = _ Math.Min(currentPageIndex + 1, pageCount - 1) txtPage.Text = "" RaiseEvent PageIndexChange(Me, e) Call NewPageDataBind() Else Throw New Exception(DataGrid & "を探し当てていない") End If End Sub Private Sub btnPrevious_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrevious.Click Dim currentPageIndex As Integer MyBase.EnsureChildControls() If Not Page.FindControl(DataGrid) Is Nothing Then currentPageIndex = CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex = _ Math.Max(currentPageIndex - 1, 0) txtPage.Text = "" RaiseEvent PageIndexChange(Me, e) Call NewPageDataBind() Else Throw New Exception(DataGrid & "を探し当てていない") End If End Sub Public Sub NewPageDataBind() Dim recordCount As Integer Dim pageCount As Integer Dim pageDgdSize As Integer Dim CurrentPageIndex As Integer CurrentPageIndex = CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex pageDgdSize = CType(Page.FindControl(DataGrid), DataGrid).PageSize pageCount = CType(Page.FindControl(DataGrid), DataGrid).PageCount If (CType(Page.FindControl(DataGrid), DataGrid).DataSource Is Nothing) Then SetButtonState(0, CurrentPageIndex) Exit Sub End If If (CType(Page.FindControl(DataGrid), DataGrid).DataSource.GetType().ToString(). _ ToLower() = "system.data.datatable") Then recordCount = CType(Page.FindControl(DataGrid), DataGrid).DataSource.Rows.Count ElseIf (CType(Page.FindControl(DataGrid), DataGrid).DataSource.GetType().ToString(). _ ToLower() = "system.data.dataview") Then recordCount = CType(Page.FindControl(DataGrid), DataGrid).DataSource.Count ElseIf (CType(Page.FindControl(DataGrid), DataGrid).DataSource.GetType().ToString(). _ ToLower() = "system.data.dataset") Then recordCount = CType(Page.FindControl(DataGrid), DataGrid).DataSource.Tables(0). _ Rows.Count End If If pageCount.ToString = 0 Then lblNowPage.Text = 0 Else lblNowPage.Text = _ (CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex + 1).ToString() End If lblAllPage.Text = "/" & pageCount.ToString() & "??" lblAllItems.Text = " 全て:" & recordCount.ToString() & "件" SetButtonState(pageCount, CurrentPageIndex) End Sub Public Sub SetButtonState(ByVal pageCount As Integer, ByVal CurrentPageIndex As Integer) btnFirst.Enabled = (0 < CurrentPageIndex) btnPrevious.Enabled = (0 < CurrentPageIndex) btnNext.Enabled = (CurrentPageIndex < pageCount - 1) btnLast.Enabled = (CurrentPageIndex < pageCount - 1) btnGo.Enabled = (1 < pageCount) txtPage.Enabled = (1 < pageCount) End Sub Private Sub btnGo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGo.Click Dim PageCount As Integer If Not Page.FindControl(DataGrid) Is Nothing Then PageCount = CType(Page.FindControl(DataGrid), DataGrid).PageCount Else Throw New Exception(DataGrid & "を探し当てていない") Exit Sub End If If txtPage.Text.ToString.Equals("") Then Exit Sub Else If PageCount < CInt(txtPage.Text) Then txtPage.Text = "" Exit Sub Else If Math.Min(PageCount - 1, CInt(txtPage.Text) - 1) < 0 Then txtPage.Text = "" Exit Sub End If CType(Page.FindControl(DataGrid), DataGrid).CurrentPageIndex = _ Math.Min(PageCount - 1, CInt(txtPage.Text) - 1) txtPage.Text = "" RaiseEvent PageIndexChange(Me, e) Call NewPageDataBind() End If End If End Sub Private Sub ChangePage_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load MyBase.EnsureChildControls() If DataGrid Is Nothing Then Throw New Exception("必要なDataGridプロパティが韵定されていない") Exit Sub End If If Not Page.FindControl(DataGrid) Is Nothing Then Call NewPageDataBind() Else Throw New Exception(DataGrid & "を探し当てていない") End If End Sub End Class Imports System.ComponentModel Imports System.Web.UI Public Class ChangePageBuilder Inherits ControlBuilder Public Overrides Function GetChildControlType(ByVal tagName As String, ByVal attributes As IDictionary) As Type If tagName.ToLower().EndsWith("newtextbox") Then Return GetType(newTextBox) End If If tagName.ToLower().EndsWith("newbutton") Then Return GetType(newButton) End If If tagName.ToLower().EndsWith("newlabel") Then Return GetType(newLabel) End If Return Nothing End Function End Class Imports System.IO Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.Design Imports System.ComponentModel Imports System.ComponentModel.Design Public Class ChangePageDesigner Inherits ControlDesigner Public Overrides Function GetDesignTimeHtml() As String Dim strWriter As StringWriter Dim htmlWriter As HtmlTextWriter Dim control As ChangePage strWriter = New StringWriter htmlWriter = New HtmlTextWriter(strWriter) control = CType(Me.Component, ChangePage) MyBase.GetDesignTimeHtml() If Not control.HasControls Then Return GetEmptyDesignTimeHtml() End If control.RenderControl(htmlWriter) Return strWriter.ToString End Function Public Overrides Function GetPersistInnerHtml() As String Dim strWriter As StringWriter Dim htmlWriter As HtmlTextWriter Dim control As ChangePage strWriter = New StringWriter htmlWriter = New HtmlTextWriter(strWriter) control = CType(Me.Component, ChangePage) MyBase.GetPersistInnerHtml() htmlWriter.Write(ControlPersister.PersistControl(control.FirstPageButton)) htmlWriter.Write(ControlPersister.PersistControl(control.PrePageButton)) htmlWriter.Write(ControlPersister.PersistControl(control.NextPageButton)) htmlWriter.Write(ControlPersister.PersistControl(control.LastPageButton)) htmlWriter.Write(ControlPersister.PersistControl(control.PageTextBox)) htmlWriter.Write(ControlPersister.PersistControl(control.PageLabel)) htmlWriter.Write(ControlPersister.PersistControl(control.ChangePageButton)) htmlWriter.Write(ControlPersister.PersistControl(control.NowPageLabel)) htmlWriter.Write(ControlPersister.PersistControl(control.AllPageLabel)) htmlWriter.Write(ControlPersister.PersistControl(control.AllItemsLabel)) Return strWriter.ToString End Function End Class 返回类别: 教程 上一教程: ASP限制只能中文输入的方式 下一教程: 硬盘文件搜索代码 您可以阅读与"翻页的WEB控件"相关的教程: · WEB打印设置解决方案二(利用SCRIPTX.CAB控件改变IE打印设置) · WEB 窗体页的数据绑定表达式 · WEB打印设置解决方案二(利用ScriptX.cab控件改变IE打印设置) · 如何在页面上动态的生成 WEBFORM控件 · 关于翻页的函数 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |