使用場景,比如,選中某個省份,然後下級列表中會顯示對應的城市。
1.使用Jquery-1.4.2.js和jquery.SPServices-0.5.7.js。
2.創建主表和子表,建立對應關系。
3.在List的NewItem或者EditItem page中添加Content Editor Webpart,然後在其中添加腳本代碼。
4.實現,
dropdownObj控件:
cascadeDropdownObj控件(該控件是通過腳本附加的):
該方法是通過傳入參數,來返回對於字表的記錄
代碼如下:
function GetSubDropdown(parameterVal){
cascadeDropdownObj.empty();//對下級列表進行清空初始
cascadeDropdownObj.append("<option selected='selected'>(None)</option>");//添加一個(None)值
var camlQuery = "<Query xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<Where> \
<Eq> \
<FieldRef Name='Title' /> \
<Value Type='Text'>"+parameterVal+"</Value> \
</Eq> \
</Where> \
</Query>";
$().SPServices({
operation: "GetListItems",
async: false,
listName: "CascadeSub",
CAMLQuery: camlQuery,
completefunc: function (xData, Status) {
$(xData.responseXML).find("[nodeName=z:row]").each(function() {
var subDropdownVal = $(this).attr("ows_SubDropdownVal");//獲取字表對應的值
//binding subDropdown
cascadeDropdownObj.append("<option>"+subDropdownVal+"</option>");
});
}
});
}
//cascading 'Dropdown'
dropdownObj.change(function(){
var dropdownSelectTextObj = $("select[title$='Dropdown'] option:selected");//獲取當前選中值
switch(dropdownSelectTextObj.text()){
case "L1":
GetSubDropdown("L1");
break;
case "L2":
GetSubDropdown("L2");
break;
case "PL1":
GetSubDropdown("PL1");
break;
default: //表示選中(None)值之後,對下級列表進行清空初始
cascadeDropdownObj.empty();
cascadeDropdownObj.append("<option selected='selected'>(None)</option>");
break;
}
});