以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  虚拟显示的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76296)

--  作者:mengyun2020
--  发布时间:2015/10/26 16:21:00
--  虚拟显示的代码
图片点击可在新窗口打开查看你好,我这个里面多了两个按纽一个筛选,一个取消筛选,我想问一下,这个要怎么重新设置一下显示的代码呢?

--  作者:大红袍
--  发布时间:2015/10/26 16:23:00
--  

参考 http://www.foxtable.com/help/topics/0449.htm

 


--  作者:mengyun2020
--  发布时间:2015/10/26 16:27:00
--  
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
 Dim pg As Integer = e.Form.Controls("Label1").Text
 Dim idx1 As Integer = (pg - 1) * 5 \'获取要显示的第一行
Dim idx2 As Integer =  pg * 5 - 1   \'获取要显示的最末行
idx2 = Math.Min(Tables("国家").Rows.Count -1,idx2) \'idx2不能超过表的最大行数
lvw.Images.Clear() \'清除之前的图片
lvw.Rows.Clear() \'清除之前的行
For idx As Integer =  idx1 To  idx2
    Dim  dr As  Row = Tables("国家").Rows(idx) \'根据行位置从数据表中取得对应的DataRow
     Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'在ListView增加一行
    Dim Key As String = dr("图标")
     lvw.Images.AddImage(Key, Key & ".ico", Key & "48.ico") \'添加代表这个国家的图标
    vr.Imagekey = key  \'指定图标键值
    For Each cl As WinForm.ListViewColumn In lvw.Columns \'逐列取值
        Select  Case cl.Name
            Case  "人口","面积" \'如果是人口列或面积列
                vr(cl.Name) = Format(dr(cl.Name),"#,000") \'则显示千位分割符号
            Case Else
                vr(cl.Name) = dr(cl.Name)
          End Select
    Next
 Next

--  作者:mengyun2020
--  发布时间:2015/10/26 16:27:00
--  
帮忙看一下哪错了总是出现,索引超出了数据界限
--  作者:mengyun2020
--  发布时间:2015/10/26 16:29:00
--  
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
 Dim pg As Integer = e.Form.Controls("Label1").Text
 Dim idx1 As Integer = (pg - 1) * 5 \'获取要显示的第一行
Dim idx2 As Integer =  pg * 5 - 1   \'获取要显示的最末行
idx2 = Math.Min(Tables("国家").Rows.Count -1,idx2) \'idx2不能超过表的最大行数
lvw.Images.Clear() \'清除之前的图片
lvw.Rows.Clear() \'清除之前的行
For idx As Integer =  idx1 To  idx2
    Dim  dr As  Row = Tables("国家").Rows(idx) \'根据行位置从数据表中取得对应的DataRow
     Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'在ListView增加一行
    Dim Key As String = dr("图标")
     lvw.Images.AddImage(Key, Key & ".ico", Key & "48.ico") \'添加代表这个国家的图标
    vr.Imagekey = key  \'指定图标键值
    For Each cl As WinForm.ListViewColumn In lvw.Columns \'逐列取值
        Select  Case cl.Name
            Case  "人口","面积" \'如果是人口列或面积列
                vr(cl.Name) = Format(dr(cl.Name),"#,000") \'则显示千位分割符号
            Case Else
                vr(cl.Name) = dr(cl.Name)
          End Select
    Next
 Next
在显示按纽里面添加了上面的代码,第一页,末页等所有按纽都不能用,筛选,取消筛选也不能用,总是出来索引超出了数据界线

--  作者:大红袍
--  发布时间:2015/10/26 16:32:00
--  

会不会是你的pg的值是0?不然是不会报错的。

 

弹出 idx1的值和idx2的值看看


--  作者:mengyun2020
--  发布时间:2015/10/26 17:17:00
--  
把代码改成帮助里面的原代码,点第一页,第二页按纽正常,可是将显示的代码换成自编的代码就出问题了,其它的按纽也都不能用了,
--  作者:大红袍
--  发布时间:2015/10/26 17:42:00
--  
怎么不行?贴出代码,或者上传具体例子。