起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3112|回复: 24

[结贴] attachment的图片在弹出窗口中用carousel展示的问题

[复制链接]

91

主题

339

帖子

894

积分

高级会员

Rank: 4

积分
894
QQ
发表于 2016-11-28 09:18:05 | 显示全部楼层 |阅读模式
本帖最后由 hbyczg 于 2016-11-28 10:41 编辑

需求:用attachment上传多张图片到sphoto列,然后在grid中显示第一张图片,当单击这张图片时打开windowDialog,在windowDialog中carousel展示其余的图片。
问题1,如何取单击图片所在的行?
问题2,当在windowDialog中carousel展示时如何去掉第一个空白的图片
问题3,当在windowDialog关闭后,再传入一条数据时carousel中如何只显示新的图片(现在是前一条的图片也显示在一起)
在grid中显示第一张图片并在单击图片时打开windowDialog并传参的代码如下:
  1. Model.prototype.listDataCellRender = function(event) {
  2.                 if (event.colName == "sPhoto") {
  3.                         if (event.colVal != null && event.colVal != "" && event.colVal != "[]") {
  4.                                 // 解析数据库中存储的json数据
  5.                                 var imageJson = eval("(" + event.colVal + ")");
  6.                                 var fileID = imageJson[0]["fileID"];
  7.                                 var docPath = imageJson[0]["docPath"];
  8.                                 // 依靠上述解析出的信息获得路径
  9.                                 var url = DocUtils.InnerUtils.getdocServerAction({
  10.                                         "docPath" : docPath,
  11.                                         urlPattern : "/repository/file/view/" + fileID + "/last/content",
  12.                                         isFormAction : false,
  13.                                         context : this.getContext()
  14.                                 });
  15.                                 event.html = "<img src=" + url + " xid='image1' style=width:50px; onclick='justep.Bind.contextFor(this).$model.sPhotoClick()'></img>";
  16.                         }
  17.                 }
  18.         };
复制代码
请问这里要如何修改才能取到当前点击图片的行?上面的写发中取到的不是当前点击图片的行

windowDialog接收到传入的行在carousel中展示的代码如下:
  1. Model.prototype.windowReceiverReceive = function(event) {
  2.                 this.action = event.data.action;
  3.                 var mainData = this.comp('dialogData');
  4.                 mainData.clear();
  5.                 if (event.data.action === "new") {
  6.                         mainData.newData();
  7.                 } else {
  8.                         mainData.setFilter("filter1", mainData.idColumn + "='" + event.data.getID() + "'");
  9.                         mainData.refreshData();

  10.                 }
  11.                 var sphoto = mainData.getValue("sPhoto");
  12.                 // if(event.colName == "sPhoto" ){
  13.                 if (sphoto != null && sphoto != "" && sphoto != "[]") {
  14.                         // 解析数据库中存储的json数据
  15.                         var imageJson = eval("(" + sphoto + ")");
  16.                         if (imageJson.length > 0) {
  17.                                 for (var i = 0; i < imageJson.length; i++) {
  18.                                         var fileID = imageJson[0]["fileID"];
  19.                                         var docPath = imageJson[0]["docPath"];
  20.                                         // 依靠上述解析出的信息获得路径
  21.                                         var url = DocUtils.InnerUtils.getdocServerAction({
  22.                                                 "docPath" : docPath,
  23.                                                 urlPattern : "/repository/file/view/" + fileID + "/last/content",
  24.                                                 isFormAction : false,
  25.                                                 context : this.getContext()
  26.                                         });
  27.                                         var carousel = this.comp("carousel1");
  28.                                         carousel.add('<img src="' + url + '" class="tb-img1" />');
  29.                                 }
  30.                         }
  31.                 }
  32. };
复制代码
以上代码如个修改才能在windowDialog中carousel展示时去掉第一个空白的图片,另当在windowDialog关闭后,再传入一条数据时carousel中如何只显示新的图片(现在是前一条的图片也显示在一起)

我用的是BEX5 3.6 谢谢

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36060
发表于 2016-11-28 13:59:39 | 显示全部楼层
1.在grid的onRowClick的event中有当前点击的行等相关的数据
2.carousel中默认content可以删除
3.可以调用contents组件的remove删除content,然后在add添加
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

339

帖子

894

积分

高级会员

Rank: 4

积分
894
QQ
 楼主| 发表于 2016-11-30 12:38:20 | 显示全部楼层
本帖最后由 hbyczg 于 2016-11-30 12:44 编辑

现在出现一新问题 attachment上传多个图片时,第一次可以在carousel中显示出来,但这后再调其它记录不论图片多少都不显示。如果是上传的是单张图片就不会有问题。(不知道是不是carouse有缺陷)代码如下请指正:
  1.         Model.prototype.windowReceiverReceive = function(event) {
  2.                 this.action = event.data.action;
  3.                 var mainData = this.comp('dialogData');
  4.                 mainData.clear();
  5.                 if (event.data.action === "new") {
  6.                         mainData.newData();
  7.                 } else {
  8.                         mainData.setFilter("filter1", mainData.idColumn + "='" + event.data.getID() + "'");
  9.                         mainData.refreshData();

  10.                 }

  11.                 var carousel = this.comp("carousel1");
  12.                 //var contents1 = this.comp("contents1");
  13.                 // 清理carousel中的图片
  14.                 carousel.removeAll();
  15.                 var sphoto = mainData.getValue("sPhoto");
  16.                 if (sphoto != null && sphoto != "" && sphoto != "[]") {
  17.                         // alert (sphoto);
  18.                         // 解析数据库中存储的json数据
  19.                         var imageJson = eval("(" + sphoto + ")");
  20.                         if (imageJson.length > 0) {
  21.                                 for (var i = 0; i < imageJson.length; i++) {
  22.                                         var fileID = imageJson[i]["fileID"];
  23.                                         var docPath = imageJson[i]["docPath"];
  24.                                         // 依靠上述解析出的信息获得路径
  25.                                         var url = DocUtils.InnerUtils.getdocServerAction({
  26.                                                 "docPath" : docPath,
  27.                                                 urlPattern : "/repository/file/view/" + fileID + "/last/content",
  28.                                                 isFormAction : false,
  29.                                                 context : this.getContext()
  30.                                         });
  31.                                         //alert(url);
  32.                                         carousel.add('<img src="' + url + '" class="tb-img1" />');
  33.                                 }
  34.                         }
  35.                 }
  36.         };
复制代码


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36060
发表于 2016-11-30 13:36:32 | 显示全部楼层
不显示确认json中获取到数据了没有
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

339

帖子

894

积分

高级会员

Rank: 4

积分
894
QQ
 楼主| 发表于 2016-11-30 14:23:55 | 显示全部楼层
本帖最后由 hbyczg 于 2016-11-30 14:33 编辑
jishuang 发表于 2016-11-30 13:36
不显示确认json中获取到数据了没有

获取到了,多图片第一次正常 QQ截图20161130142842.png

第二次就不显示图片了
QQ截图20161130143013.png



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36060
发表于 2016-11-30 15:16:08 | 显示全部楼层
F12打开了浏览器的开发人员调试工具看看节点生成了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

339

帖子

894

积分

高级会员

Rank: 4

积分
894
QQ
 楼主| 发表于 2016-11-30 15:31:54 | 显示全部楼层
本帖最后由 hbyczg 于 2016-11-30 15:37 编辑
jishuang 发表于 2016-11-30 15:16
F12打开了浏览器的开发人员调试工具看看节点生成了吗?

这个不太会看。感觉应生成了吧,单个图片都没问题的,多图片的第一次展示也没问题,就是打开过一次多图片后就不行了。能远程帮我看一下不?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36060
发表于 2016-11-30 16:21:09 | 显示全部楼层
F12打开浏览器的开发人员调试工具,用箭头或者放大镜的那个图标去定位
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

339

帖子

894

积分

高级会员

Rank: 4

积分
894
QQ
 楼主| 发表于 2016-11-30 17:22:11 | 显示全部楼层
jishuang 发表于 2016-11-30 16:21
F12打开浏览器的开发人员调试工具,用箭头或者放大镜的那个图标去定位

这是F12调试后取出来的,看来是生成了,但就是图片没显示
<div component="$model/UI2/system/components/bootstrap/carousel/carousel" class="x-carousel cNfIz2q" xid="carousel1" data-bind="component:{name:'$model/UI2/system/components/bootstrap/carousel/carousel'}" data-config="{&quot;auto&quot;:true}" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_carousel1">
      <ol class="carousel-indicators cNfIz2q" xid="ol1" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_ol1"><li index="0" __cid="cNfIz2q" class="cNfIz2q"></li><li index="1" __cid="cNfIz2q" class="cNfIz2q"></li><li index="2" __cid="cNfIz2q" class="cNfIz2q"></li></ol>  
      <div class="x-contents carousel-inner cNfIz2q slidable" role="listbox" component="$model/UI2/system/components/justep/contents/contents" xid="contents1" data-bind="component:{name:'$model/UI2/system/components/justep/contents/contents'}" data-config="{&quot;active&quot;:0,&quot;routable&quot;:false,&quot;slidable&quot;:true,&quot;swipe&quot;:true,&quot;wrap&quot;:true}" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_contents1">
         
      <div component="$model/UI2/system/components/justep/contents/content" class="x-contents-content cNfIz2q" xid="" __cid="cNfIz2q" data-bind="component:{name:'$model/UI2/system/components/justep/contents/content'}"><img src="/x5/UI2/v_1005a95bbc49442d848ae5c4d8a23a8bl_zh_CNs_compactd_pc/system/service/doc/common/uploadDoc.j?dochost=http://localhost:8080/DocServer/repository/file/view/30-defaultDocNameSpace/last/content" class="tb-img1 cNfIz2q" __cid="cNfIz2q"></div><div component="$model/UI2/system/components/justep/contents/content" class="x-contents-content cNfIz2q" xid="" __cid="cNfIz2q" data-bind="component:{name:'$model/UI2/system/components/justep/contents/content'}"><img src="/x5/UI2/v_1005a95bbc49442d848ae5c4d8a23a8bl_zh_CNs_compactd_pc/system/service/doc/common/uploadDoc.j?dochost=http://localhost:8080/DocServer/repository/file/view/31-defaultDocNameSpace/last/content" class="tb-img1 cNfIz2q" __cid="cNfIz2q"></div><div component="$model/UI2/system/components/justep/contents/content" class="x-contents-content cNfIz2q" xid="" __cid="cNfIz2q" data-bind="component:{name:'$model/UI2/system/components/justep/contents/content'}"><img src="/x5/UI2/v_1005a95bbc49442d848ae5c4d8a23a8bl_zh_CNs_compactd_pc/system/service/doc/common/uploadDoc.j?dochost=http://localhost:8080/DocServer/repository/file/view/32-defaultDocNameSpace/last/content" class="tb-img1 cNfIz2q" __cid="cNfIz2q"></div></div>  
      <a class="left carousel-control cNfIz2q" role="button" xid="a1" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_a1">
        <span class="glyphicon glyphicon-chevron-left cNfIz2q" aria-hidden="true" xid="span1" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_span1"></span>  
        <span class="sr-only cNfIz2q" xid="span2" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_span2">Previous</span>
      </a>  
      <a class="right carousel-control cNfIz2q" role="button" xid="a2" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_a2">
        <span class="glyphicon glyphicon-chevron-right cNfIz2q" aria-hidden="true" xid="span3" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_span3"></span>  
        <span class="sr-only cNfIz2q" xid="span4" __cid="cNfIz2q" id="C751D2CC48700001924C13E3135112D7_span4">Next</span>
      </a>
    </div>
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36060
发表于 2016-11-30 17:56:35 | 显示全部楼层
看看样式上是不是有display:none的
或者宽度和高度为0了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-14 19:02 , Processed in 0.103454 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表