以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  移动开发 查询数据 部分数据可以筛选出来 部分数据直接页面显示空白 求解  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160931)

--  作者:cnsjroom
--  发布时间:2021/2/26 16:22:00
--  移动开发 查询数据 部分数据可以筛选出来 部分数据直接页面显示空白 求解
移动开发 查询数据   部分数据可以筛选出来  部分数据直接页面显示空白  求解

图片点击可在新窗口打开查看此主题相关图片如下:11.gif
图片点击可在新窗口打开查看

筛选数据显示页面代码:
Dim e As RequestEventArgs = args(0)
Dim wb As New WeUI
Dim flt As String
If e.GetValues.ContainsKey("unfilter") Then \'如果是取消筛选
    wb.ClearCookie() \'清除Cookie
Else
    flt = Functions.Execute("getbiaozhang",e, wb) \'根据输入内容合成条件,注意WeUI也需要传递过去
End If
Dim page As Integer = 0 \'默认page为0,显示第一页
Dim pageRows As Integer = 10 \'每页15行
If e.GetValues.ContainsKey("page") Then  \'如果地址中有page参数
    Integer.TryParse(e.GetValues("page"), page) \'提取page参数
End If
Dim StartRow As Integer = page * pageRows + 1 \'此页第一行
Dim EndRow As Integer = (page + 1) * pageRows \'此页最后一行
\'获取该页数据
Dim cmd As New SQLCommand
cmd.C \'记得设置数据源名称
cmd.CommandText = "Sel ect Count(*) From {表彰}"
If flt > "" Then
    cmd.CommandText = cmd.CommandText & " where " & flt
End If
Dim Count As Integer = cmd.ExecuteScalar() \'获取总的行数
Dim Pages As Integer = Math.Ceiling(Count/PageRows) \'计算出总页数

cmd.CommandText = "Sel ect * From (Se lect Row_Number() Over(Order by _Identify) As [NO.],[_Identify],获奖者,获奖名称,授奖单位,获奖时间  From 表彰"
If flt > "" Then
    cmd.CommandText = cmd.CommandText & " where " & flt
End If

MessageBox.Show(cmd.CommandText)
cmd.CommandText = cmd.CommandText & ") As a "
cmd.CommandText = cmd.CommandText & "  Where [NO.]>= " & StartRow & " And [NO.] <= " & EndRow
\'MessageBox.Show(cmd.CommandText)
Dim dt As DataTable = cmd.ExecuteReader
\'生成菜单
wb.AddPageTitle("","ph1","表彰列表","")
With wb.AddTable("","Table1")
    .AfterSelChange = "dynaActiveSheet()" \'置顶选择不同单元格后要执行的js行数,注意区分大小写
    .PageNumber = page \'设置页码
    .ActiveSheet = "menu" \'设置菜单
    .RowHead = 1 \'左边第一列作为行头
.head.AddRow("序号","获奖者","获奖名称","授奖单位","获奖时间")

    
    .ColWidth="1px,30px,55px,20px,10px"
    For Each dr As DataRow In dt.DataRows
        With .body.AddRow()
            .Primarykey =dr("_Identify")
            Dim s As String=dr("获奖者")   
            Dim s1 As String = dr("获奖名称")
            Dim s11 As String = dr("授奖单位")
            Dim s111 As String = dr("获奖时间")
            If s1.Length > 10 Then
                s1 = s1.SubString(0,25) & "..."
            End If
            .AddCells(dr("NO."),s,s1,s11,s111)\'逐个单元格增加
        End With
    Next
End With

With wb.AddActionSheet("","menu") \'设计菜单
    If flt = "" Then
        .Add("mnuFilter", "数据筛选","biaozhangchaxun.htm")
    Else
        .Add("mnuUnFilter", "取消筛选","getbiaozhanglist.htm?unfilter=true")
    End If
    .Add("mnuCancel","取消","",True)
End With

With wb.AddButtonGroup("","btg2", False)
    .Add("btn2", "继续检索","", "biaozhangchaxun.htm")
    .Add("btn2", "返回首页","", "default.htm")
    If page > 0 Then
        .Add("btnPrev", "上一页","","getbiaozhangList.htm?page=" & page - 1)
    Else
        .Add("btnPrev", "上一页").Kind = 1
    End If
    If Endrow < count Then
        .Add("btnNext", "下一页","","getbiaozhangList.htm?page=" & page + 1)
    Else
        .Add("btnNext", "下一页").Kind = 1
    End If
End With

e.WriteString(wb.Build)
[此贴子已经被作者于2021/2/27 11:56:47编辑过]

--  作者:有点蓝
--  发布时间:2021/2/26 16:46:00
--  
            If s1.Length > 10 Then
                s1 = s1.SubString(0,10) & "..."
            End If

或者

            If s1.Length > 25 Then
                s1 = s1.SubString(0,25) & "..."
            End If

--  作者:cnsjroom
--  发布时间:2021/2/27 11:57:00
--  回复:(有点蓝)         ...
谢谢  按指导已解决