|
本帖最后由 hbyczg 于 2016-11-28 10:41 编辑
需求:用attachment上传多张图片到sphoto列,然后在grid中显示第一张图片,当单击这张图片时打开windowDialog,在windowDialog中carousel展示其余的图片。
问题1,如何取单击图片所在的行?
问题2,当在windowDialog中carousel展示时如何去掉第一个空白的图片
问题3,当在windowDialog关闭后,再传入一条数据时carousel中如何只显示新的图片(现在是前一条的图片也显示在一起)
在grid中显示第一张图片并在单击图片时打开windowDialog并传参的代码如下:
- Model.prototype.listDataCellRender = function(event) {
- if (event.colName == "sPhoto") {
- if (event.colVal != null && event.colVal != "" && event.colVal != "[]") {
- // 解析数据库中存储的json数据
- var imageJson = eval("(" + event.colVal + ")");
- var fileID = imageJson[0]["fileID"];
- var docPath = imageJson[0]["docPath"];
- // 依靠上述解析出的信息获得路径
- var url = DocUtils.InnerUtils.getdocServerAction({
- "docPath" : docPath,
- urlPattern : "/repository/file/view/" + fileID + "/last/content",
- isFormAction : false,
- context : this.getContext()
- });
- event.html = "<img src=" + url + " xid='image1' style=width:50px; onclick='justep.Bind.contextFor(this).$model.sPhotoClick()'></img>";
- }
- }
- };
复制代码 请问这里要如何修改才能取到当前点击图片的行?上面的写发中取到的不是当前点击图片的行
windowDialog接收到传入的行在carousel中展示的代码如下:- Model.prototype.windowReceiverReceive = function(event) {
- this.action = event.data.action;
- var mainData = this.comp('dialogData');
- mainData.clear();
- if (event.data.action === "new") {
- mainData.newData();
- } else {
- mainData.setFilter("filter1", mainData.idColumn + "='" + event.data.getID() + "'");
- mainData.refreshData();
- }
- var sphoto = mainData.getValue("sPhoto");
- // if(event.colName == "sPhoto" ){
- if (sphoto != null && sphoto != "" && sphoto != "[]") {
- // 解析数据库中存储的json数据
- var imageJson = eval("(" + sphoto + ")");
- if (imageJson.length > 0) {
- for (var i = 0; i < imageJson.length; i++) {
- var fileID = imageJson[0]["fileID"];
- var docPath = imageJson[0]["docPath"];
- // 依靠上述解析出的信息获得路径
- var url = DocUtils.InnerUtils.getdocServerAction({
- "docPath" : docPath,
- urlPattern : "/repository/file/view/" + fileID + "/last/content",
- isFormAction : false,
- context : this.getContext()
- });
- var carousel = this.comp("carousel1");
- carousel.add('<img src="' + url + '" class="tb-img1" />');
- }
- }
- }
- };
复制代码 以上代码如个修改才能在windowDialog中carousel展示时去掉第一个空白的图片,另当在windowDialog关闭后,再传入一条数据时carousel中如何只显示新的图片(现在是前一条的图片也显示在一起)
我用的是BEX5 3.6 谢谢
|
|