用户控件源码 BestTextView.ascx
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="BestTextView.ascx.vb" Inherits="MoaWap.BestTextView" TargetSchema="http://schemas.microsoft.com/Mobile/WebUserControl" %>
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<mobile:TextView id="tv" runat="server"></mobile:TextView>
<mobile:Panel id="Panel1" runat="server" BreakAfter="True">
    <mobile:Label id="Label1" runat="server" BreakAfter="False">[</mobile:Label>
    <mobile:Label id="lbl_currpage" runat="server" BreakAfter="False">1</mobile:Label>
    <mobile:Label id="Label2" runat="server" BreakAfter="False">/</mobile:Label>
    <mobile:Label id="lbl_count" runat="server" BreakAfter="False">0</mobile:Label>
    <mobile:Label id="Label3" runat="server" BreakAfter="False">]  </mobile:Label>
    <mobile:Label id="lbl_RoteCount" runat="server" BreakAfter="False">0</mobile:Label>
    <mobile:Label id="Label5" runat="server" BreakAfter="False">字</mobile:Label>
</mobile:Panel>
<mobile:Panel id="Panel2" runat="server" BreakAfter="True">
    <mobile:Command id="btn_first" runat="server" BreakAfter="False" Visible="False">[首页]</mobile:Command>
    <mobile:command id="btn_syy" runat="server" BreakAfter="False" Visible="False">[上页]</mobile:command>
    <mobile:command id="btn_xyy" runat="server" BreakAfter="False" Visible="False">[下页]</mobile:command>
    <mobile:Command id="btn_end" runat="server" BreakAfter="False" Visible="False">[末页]</mobile:Command>
</mobile:Panel>
<mobile:Panel id="Panel3" runat="server">
    <mobile:Label id="Label4" runat="server" BreakAfter="False">转向</mobile:Label>
    <mobile:TextBox id="txt_go" runat="server" BreakAfter="False" Size="2" Numeric="True">1</mobile:TextBox>
    <mobile:Command id="btn_go" runat="server">GO</mobile:Command>
</mobile:Panel>
<mobile:Label id="lbl_index" runat="server" Visible="False">0</mobile:Label>
用户控件源码 BestTextView.VB

委托定义

Public MustInherit Class BestTextView
    Inherits System.Web.UI.MobileControls.MobileUserControl

Web 窗体设计器生成的代码

变量/属性及事件声明

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
    End Sub

    '''翻页处理
    Private Sub MyPageIdexChange(ByVal key As String)
        Select Case key
            Case "first"
                If Convert.ToInt32(lbl_count.Text.Trim()) > 0 Then
                    lbl_currpage.Text = "1"
                End If
            Case "top"
                If Convert.ToInt32(lbl_currpage.Text.Trim()) > 1 Then
                    lbl_currpage.Text = Convert.ToString(Convert.ToInt32(lbl_currpage.Text.Trim()) - 1)
                End If
            Case "next"
                If Convert.ToInt32(lbl_currpage.Text.Trim()) < Convert.ToInt32(lbl_count.Text.Trim()) Then
                    lbl_currpage.Text = Convert.ToString(Convert.ToInt32(lbl_currpage.Text.Trim()) + 1)
                End If
            Case "last"
                If Convert.ToInt32(lbl_count.Text.Trim()) > 0 Then
                    lbl_currpage.Text = lbl_count.Text.Trim()
                End If
            Case "go"
                If txt_go.Text.Trim() <> "" Then
                    Dim igo As Integer = CInt(txt_go.Text.Trim())
                    If igo <= Convert.ToInt32(lbl_count.Text.Trim()) And igo >= 1 Then
                        lbl_currpage.Text = txt_go.Text.Trim()
                    End If
                End If
        End Select
        '触发用户控件的PageIdexChange事件
        'If Not (BestListPageIndexChange Is Nothing) Then
        RaiseEvent BestTextViewPageIndexChange(Me)
        'End If
    End Sub

    '数据绑定
    Public Overrides Sub DataBind()
        If DataString <> "" Then
            '得出当前记录总数
            Dim RoteCount As Integer = DataString.Length
            '当不同数据源绑定时恢复当前页为1(根据记录数判断是否是同一个数据源)
            Dim OldRoteCount As Integer = Convert.ToInt32(lbl_RoteCount.Text.Trim())
            If OldRoteCount <> 0 And OldRoteCount <> RoteCount Then
                lbl_currpage.Text = "1"
            End If
            lbl_RoteCount.Text = RoteCount.ToString()
            '得出页总数
            Dim tespint As Integer = RoteCount Mod PageSize
            If tespint > 0 Then
                'lbl_count.Text = Convert.ToString(CInt(RoteCount / PageSize) + 1)
                lbl_count.Text = Convert.ToString(CInt((RoteCount - tespint) / PageSize) + 1)
            Else
                lbl_count.Text = Convert.ToString(RoteCount / PageSize)
            End If
            If Convert.ToInt32(lbl_currpage.Text.Trim()) > 0 And Convert.ToInt32(lbl_currpage.Text.Trim()) <= Convert.ToInt32(lbl_count.Text.Trim()) Then
                '据当前页求出本页的开始记录和取的字数
                Dim start As Integer, tempsize As Integer = 0
                start = (Convert.ToInt32(lbl_currpage.Text.Trim()) - 1) * PageSize
                If Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) Then
                    tempsize = RoteCount Mod PageSize
                    If tempsize = 0 Then
                        tempsize = PageSize
                    End If
                Else
                    tempsize = PageSize
                End If
                tv.Text = DataString.Substring(start, tempsize)
            End If
                '---------导航按钮控制
                If Convert.ToInt32(lbl_count.Text.Trim()) <= 1 Then
                    '当只有一页时或没有记录时
                    btn_first.Visible = False
                    btn_syy.Visible = False
                    btn_xyy.Visible = False
                    btn_end.Visible = False
                    Panel1.Visible = False
                    Panel3.Visible = False
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = 1 Then
                    '当为第一页时
                    btn_first.Visible = False
                    btn_syy.Visible = False
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) Then
                    '当为最后一页时
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = False
                    btn_end.Visible = False
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = 2 Then
                    '当为第二页时
                    btn_first.Visible = True
                    btn_syy.Visible = False
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) - 1 Then
                    '当为最后一页时
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = False
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                Else
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                End If
            End If
    End Sub

    Private Sub btn_first_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_first.Click
        MyPageIdexChange("first")
    End Sub

    Private Sub btn_syy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_syy.Click
        MyPageIdexChange("top")
    End Sub

    Private Sub btn_xyy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_xyy.Click
        MyPageIdexChange("next")
    End Sub

    Private Sub btn_end_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_end.Click
        MyPageIdexChange("last")
    End Sub

    Private Sub btn_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_go.Click
        MyPageIdexChange("go")
    End Sub

End Class
使用页面 test.aspx
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="test.aspx.vb" Inherits="MoaWap.test" %>
<%@ Register TagPrefix="uc1" TagName="BestTextView" Src="BestTextView.ascx" %>
<HEAD>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/Mobile/Page">
</HEAD>
<body Xmlns:mobile="http://schemas.microsoft.com/Mobile/WebForm">
    <mobile:Form id="Form1" runat="server">
        <FONT face="宋体">
            <uc1:BestTextView id="bv" runat="server"></uc1:BestTextView>
        </FONT>
    </mobile:Form>
</body>
使用页面 test.vb
Public Class test
    Inherits System.Web.UI.MobileControls.MobilePage

Web 窗体设计器生成的代码

    Private WithEvents bv As BestTextView
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '获取用户控件
        bv = CType(Me.FindControl("bv"), BestTextView)
    End Sub

    Private Sub Form1_Activate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1.Activate
        filldata()
    End Sub

    Private Sub bv_dbgweIndexChange(ByVal sender As Object) Handles bv.BestTextViewPageIndexChange
        '重新绑定一下数据
        filldata()
    End Sub

    Private Sub filldata()
        bv.PageSize = Config.PageTextSize
        bv.DataString = "你好,好好abcdef好好好好大厦大厦大厦大厦fffff大厦大厦大厦大厦大厦大厦大厦大aaaaaa厦大厦大厦大厦大.;'厦大厦大dsaf厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大./m厦大厦大厦大厦dsfafadfd/'gs.safdasdf大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦"
        bv.DataBind()
    End Sub
End Class
效果
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="BestTextView.ascx.vb" Inherits="MoaWap.BestTextView" TargetSchema="http://schemas.microsoft.com/Mobile/WebUserControl" %>
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<mobile:TextView id="tv" runat="server"></mobile:TextView>
<mobile:Panel id="Panel1" runat="server" BreakAfter="True">
    <mobile:Label id="Label1" runat="server" BreakAfter="False">[</mobile:Label>
    <mobile:Label id="lbl_currpage" runat="server" BreakAfter="False">1</mobile:Label>
    <mobile:Label id="Label2" runat="server" BreakAfter="False">/</mobile:Label>
    <mobile:Label id="lbl_count" runat="server" BreakAfter="False">0</mobile:Label>
    <mobile:Label id="Label3" runat="server" BreakAfter="False">]  </mobile:Label>
    <mobile:Label id="lbl_RoteCount" runat="server" BreakAfter="False">0</mobile:Label>
    <mobile:Label id="Label5" runat="server" BreakAfter="False">字</mobile:Label>
</mobile:Panel>
<mobile:Panel id="Panel2" runat="server" BreakAfter="True">
    <mobile:Command id="btn_first" runat="server" BreakAfter="False" Visible="False">[首页]</mobile:Command>
    <mobile:command id="btn_syy" runat="server" BreakAfter="False" Visible="False">[上页]</mobile:command>
    <mobile:command id="btn_xyy" runat="server" BreakAfter="False" Visible="False">[下页]</mobile:command>
    <mobile:Command id="btn_end" runat="server" BreakAfter="False" Visible="False">[末页]</mobile:Command>
</mobile:Panel>
<mobile:Panel id="Panel3" runat="server">
    <mobile:Label id="Label4" runat="server" BreakAfter="False">转向</mobile:Label>
    <mobile:TextBox id="txt_go" runat="server" BreakAfter="False" Size="2" Numeric="True">1</mobile:TextBox>
    <mobile:Command id="btn_go" runat="server">GO</mobile:Command>
</mobile:Panel>
<mobile:Label id="lbl_index" runat="server" Visible="False">0</mobile:Label>
用户控件源码 BestTextView.VB

委托定义
Public MustInherit Class BestTextView
    Inherits System.Web.UI.MobileControls.MobileUserControl
Web 窗体设计器生成的代码
变量/属性及事件声明
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
    End Sub
    '''翻页处理
    Private Sub MyPageIdexChange(ByVal key As String)
        Select Case key
            Case "first"
                If Convert.ToInt32(lbl_count.Text.Trim()) > 0 Then
                    lbl_currpage.Text = "1"
                End If
            Case "top"
                If Convert.ToInt32(lbl_currpage.Text.Trim()) > 1 Then
                    lbl_currpage.Text = Convert.ToString(Convert.ToInt32(lbl_currpage.Text.Trim()) - 1)
                End If
            Case "next"
                If Convert.ToInt32(lbl_currpage.Text.Trim()) < Convert.ToInt32(lbl_count.Text.Trim()) Then
                    lbl_currpage.Text = Convert.ToString(Convert.ToInt32(lbl_currpage.Text.Trim()) + 1)
                End If
            Case "last"
                If Convert.ToInt32(lbl_count.Text.Trim()) > 0 Then
                    lbl_currpage.Text = lbl_count.Text.Trim()
                End If
            Case "go"
                If txt_go.Text.Trim() <> "" Then
                    Dim igo As Integer = CInt(txt_go.Text.Trim())
                    If igo <= Convert.ToInt32(lbl_count.Text.Trim()) And igo >= 1 Then
                        lbl_currpage.Text = txt_go.Text.Trim()
                    End If
                End If
        End Select
        '触发用户控件的PageIdexChange事件
        'If Not (BestListPageIndexChange Is Nothing) Then
        RaiseEvent BestTextViewPageIndexChange(Me)
        'End If
    End Sub
    '数据绑定
    Public Overrides Sub DataBind()
        If DataString <> "" Then
            '得出当前记录总数
            Dim RoteCount As Integer = DataString.Length
            '当不同数据源绑定时恢复当前页为1(根据记录数判断是否是同一个数据源)
            Dim OldRoteCount As Integer = Convert.ToInt32(lbl_RoteCount.Text.Trim())
            If OldRoteCount <> 0 And OldRoteCount <> RoteCount Then
                lbl_currpage.Text = "1"
            End If
            lbl_RoteCount.Text = RoteCount.ToString()
            '得出页总数
            Dim tespint As Integer = RoteCount Mod PageSize
            If tespint > 0 Then
                'lbl_count.Text = Convert.ToString(CInt(RoteCount / PageSize) + 1)
                lbl_count.Text = Convert.ToString(CInt((RoteCount - tespint) / PageSize) + 1)
            Else
                lbl_count.Text = Convert.ToString(RoteCount / PageSize)
            End If
            If Convert.ToInt32(lbl_currpage.Text.Trim()) > 0 And Convert.ToInt32(lbl_currpage.Text.Trim()) <= Convert.ToInt32(lbl_count.Text.Trim()) Then
                '据当前页求出本页的开始记录和取的字数
                Dim start As Integer, tempsize As Integer = 0
                start = (Convert.ToInt32(lbl_currpage.Text.Trim()) - 1) * PageSize
                If Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) Then
                    tempsize = RoteCount Mod PageSize
                    If tempsize = 0 Then
                        tempsize = PageSize
                    End If
                Else
                    tempsize = PageSize
                End If
                tv.Text = DataString.Substring(start, tempsize)
            End If
                '---------导航按钮控制
                If Convert.ToInt32(lbl_count.Text.Trim()) <= 1 Then
                    '当只有一页时或没有记录时
                    btn_first.Visible = False
                    btn_syy.Visible = False
                    btn_xyy.Visible = False
                    btn_end.Visible = False
                    Panel1.Visible = False
                    Panel3.Visible = False
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = 1 Then
                    '当为第一页时
                    btn_first.Visible = False
                    btn_syy.Visible = False
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) Then
                    '当为最后一页时
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = False
                    btn_end.Visible = False
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = 2 Then
                    '当为第二页时
                    btn_first.Visible = True
                    btn_syy.Visible = False
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                ElseIf Convert.ToInt32(lbl_currpage.Text.Trim()) = Convert.ToInt32(lbl_count.Text.Trim()) - 1 Then
                    '当为最后一页时
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = False
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                Else
                    btn_first.Visible = True
                    btn_syy.Visible = True
                    btn_xyy.Visible = True
                    btn_end.Visible = True
                    Panel1.Visible = True
                    Panel3.Visible = True
                End If
            End If
    End Sub
    Private Sub btn_first_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_first.Click
        MyPageIdexChange("first")
    End Sub
    Private Sub btn_syy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_syy.Click
        MyPageIdexChange("top")
    End Sub
    Private Sub btn_xyy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_xyy.Click
        MyPageIdexChange("next")
    End Sub
    Private Sub btn_end_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_end.Click
        MyPageIdexChange("last")
    End Sub
    Private Sub btn_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_go.Click
        MyPageIdexChange("go")
    End Sub
End Class
使用页面 test.aspx
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="test.aspx.vb" Inherits="MoaWap.test" %>
<%@ Register TagPrefix="uc1" TagName="BestTextView" Src="BestTextView.ascx" %>
<HEAD>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/Mobile/Page">
</HEAD>
<body Xmlns:mobile="http://schemas.microsoft.com/Mobile/WebForm">
    <mobile:Form id="Form1" runat="server">
        <FONT face="宋体">
            <uc1:BestTextView id="bv" runat="server"></uc1:BestTextView>
        </FONT>
    </mobile:Form>
</body>
使用页面 test.vb
Public Class test
    Inherits System.Web.UI.MobileControls.MobilePage
Web 窗体设计器生成的代码
    Private WithEvents bv As BestTextView
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '获取用户控件
        bv = CType(Me.FindControl("bv"), BestTextView)
    End Sub
    Private Sub Form1_Activate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1.Activate
        filldata()
    End Sub
    Private Sub bv_dbgweIndexChange(ByVal sender As Object) Handles bv.BestTextViewPageIndexChange
        '重新绑定一下数据
        filldata()
    End Sub
    Private Sub filldata()
        bv.PageSize = Config.PageTextSize
        bv.DataString = "你好,好好abcdef好好好好大厦大厦大厦大厦fffff大厦大厦大厦大厦大厦大厦大厦大aaaaaa厦大厦大厦大厦大.;'厦大厦大dsaf厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大./m厦大厦大厦大厦dsfafadfd/'gs.safdasdf大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦大厦"
        bv.DataBind()
    End Sub
End Class
效果
                    
                
                
            
        
浙公网安备 33010602011771号