如何在dropDownList字段中显示/隐藏数据,具体取决于其他列表布尔字段(查找值)

时间:2014-06-30 10:42:08

标签: list sharepoint-2013 lookup

我正在使用sharepoint 2013 ... 我有两个清单;

1°/ Cars{brand,color,price} 2°/ Colors{designation,availability}。

我将字段“颜色”(汽车列表的字段)设置为查找字段,以显示颜色列表中的颜色。 在汽车列表中填充数据时,在字段颜色中,我想在颜色列表的可用性字段中找到可用“是”的颜色。 我怎么能得到这个?

有人能帮帮我吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

在您的汽车列表中创建新视图。然后过滤,这样它只显示可用性=是

的项目

答案 1 :(得分:0)

我猜第二个列表有{颜色,名称,可用性}。 有两种解决方案: 第一个解决方案在第二个列表中,您添加一个计算字段= if如果Availability = true:[带颜色的字段]:""。这将过滤掉所有不可用的颜色。但是,从可用状态更改为不可用状态时,您应该遇到问题 - 即您在以前的记录中丢失信息。

第二个解决方案需要jquery和ajax。基本上,在文档加载时,你检查每个选项是否可用 - 如果不可用,删除它。唯一的缺点是你需要在某个地方jquery.js我在房子里但如果你想要它,我明天就可以编写代码了。 代码是:

$(window).ready(function() { 
$("#PutHereTHeIDOfthedropodown > option").each(
function(index) {
                if (window.console) console.log("inside" + index+"," + $(this).val()); //39, 51 κλπ
                // $(this).hide();// with this, we hide the selection!!
                var mythis = $(this);
                $.ajax( {
                    url:"http://YourWebSite/sites/DNY/_api/Lists(guid'b5910edd-8a39-4d45-GUID-Of-The-List')/items(" + mythis.val()+")?$select=Active",
                    type:"GET",
                     headers: {
                        "accept": "application/json;odata=verbose",
                    },
                  success: function(data){ console.log("ajax call SUCCESS");  
                                       console.log("item:"+mythis.val());
                                            console.log("Data:" + data);
                                            console.log("Active: " + data.d.Active);
                                        if (!data.d.Active) {
                                            console.log("hiding: " + mythis.val() + "["+ "]");
                                            mythis.hide();
                        }//if
                }//success
                    ,
                    error: function(error){
                                           console.log(" =============================================>>Error:" + mythis.val());
                                           console.log (JSON.stringify(error));
                                           console.log(" Error:" + mythis.val());
                                           console.log(JSON.stringify(error));
                            }//error
                    });//ajax
                });//each
            });//ready