用户控件源码 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号