以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]图片文件远程保存的更新问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76439) |
-- 作者:ehomecd -- 发布时间:2015/10/29 10:13:00 -- [求助]图片文件远程保存的更新问题 [求助]图片文件远程保存的更新问题 图片字段的图片设置保存在远程服务器,通过控件PictureViewer1在服务器上删除了旧文件,更换了新文件后。问题1:在PictureViewer1控件和图片列窗口都实现一个已删除的图片占位,如何实现远程文件更新,本地缓存的图片文件也同步更新(删除和新增) 问题2:手工删除了本地文件后,listview关于此行的图片无法显示,出现空白。发现问题可能出在文件路径上,自动更新的图片文件在RemoteFiles文件夹,而listview加载的文件在images文件夹,请问如何指定listview的图片文件路径到RemoteFiles? listview的 代码: Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Tile \'显示模式为平铺 lvw.Images.LargeSize = New Size(110,120) \'定义大图标尺寸 lvw.TitleSize = New Size(200,150) \'设置平铺区域的大小 Dim cls() As String = {"姓名","空行","金币","空行2","当前印章","空行3","勋章","空行4","经验值"} \'定义列名 For i As Integer = 0 To cls.Length - 1 \'增加列 Dim c As WinForm.ListViewColumn = lvw.Columns.Add() c.Name = cls(i) \'指定列名 Next For Each dr As DataRow In DataTables("学生信息").Select("", "累计获得金币 desc") \'从数据表中提取数据 Dim Key As String = dr("照片").Replace("//", "") \'获取此员工的照片文件 lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.ToolTipText = dr("团队名称") \'设置此行的动态提示 vr.ImageKey = Key \'设置图片键值 vr("姓名") = dr("姓名") vr("空行") = " " vr("金币") = "金币:" & dr("金币") vr("空行2") = " " \'--------------计算当前学生的有效印章数量---------------------- Dim sum As Integer = 0 Dim drs As List(Of DataRow) = DataTables("龙源宝藏").Select("学生编号 = \'"& dr("学生编号") &"\' And 印章有效 = 1") If drs.Count > 0 Then For Each dr1 As DataRow In drs Dim yxyz As Integer = dr1("路队") + dr1("用餐") + dr1("午休") + dr1("作业") + dr1("运气") + dr1("惩罚") + dr1("印章补差") + dr1("奖励") sum = sum + yxyz Next End If \'--------------计算当前学生的有效印章数量---------------------- vr("当前印章") = "印章:" & sum vr("空行3") = " " vr("勋章") = "勋章:" & DataTables("成长勋章").Compute("count(成长勋章)","姓名 = \'" & dr("姓名") & "\'") vr("空行4") = " " vr("经验值") = "经验:" & dr("累计获得金币") vr.Tag = dr Next lvw.ResumeRedraw() \'恢复绘制 |
-- 作者:大红袍 -- 发布时间:2015/10/29 10:23:00 -- 1、用代码删除,在datacolchanged事件,删除 e.OldValue 的路径的文件
http://www.foxtable.com/help/topics/1410.htm
2、同样的,在datacolchanged事件,你可以把listview某行的数据删除,或者直接刷新listview
或者用这个事件也行 http://www.foxtable.com/help/topics/2716.htm
|
-- 作者:ehomecd -- 发布时间:2015/10/29 10:54:00 -- 关于第二个问题,listview的图标文件是否可以指定RemoteFiles文件夹内 |
-- 作者:大红袍 -- 发布时间:2015/10/29 10:58:00 -- 以下是引用ehomecd在2015/10/29 10:54:00的发言:
关于第二个问题,listview的图标文件是否可以指定RemoteFiles文件夹内
不可以。但是你不是可以写绝对路径么? 如 projectpath & "RemoteFiles/xxx.jpg" |
-- 作者:ehomecd -- 发布时间:2015/11/3 19:49:00 -- Dim Key As String = dr("照片").Replace("//", "") \'获取此员工的照片文件 lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.ToolTipText = dr("团队名称") \'设置此行的动态提示 vr.ImageKey = ProjectPath & "RemoteFiles/Key" \'设置图片键值 这样写代码问题是什么?预览图片无法显示。 |
-- 作者:大红袍 -- 发布时间:2015/11/3 19:59:00 -- Dim Key As String = dr("照片").Replace("//", "") \'获取此员工的照片文件 Dim img As String = ProjectPath & "RemoteFiles/" & key lvw.Images.AddLargeImage(Key, img) \'添加照片,直接用文件名作为图片键值
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行
vr.ToolTipText = dr("团队名称") \'设置此行的动态提示
vr.ImageKey = Key \'设置图片键值
|
-- 作者:ehomecd -- 发布时间:2015/11/3 19:59:00 -- 谢谢,刚才没看到您的回复,解决问题了
[此贴子已经被作者于2015/11/3 20:02:09编辑过]
|