我有一个自定义列表Sections,它的值基于一个日期范围。 我有一个联系人列表,它将是一个个人列表,并在这个自定义列表中拥有一个Sections查询。 我想让Sections查询的下拉菜单只显示那些在今天的日期内的值。
我有代码可以删除这些值(可能还有更好的方法,我正在走一遍),然后我有代码可以查找列表,并找到合适的 "当前 "值。
我不知道如何将这些值添加到Dropdown中。 我所有的代码都可以工作,但需要细节来将适当的值添加到Dropdown中。
<script type="text/javascript">
$(document).ready(function() {
//don't exectute any jsom until sp.js file has loaded.
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', GetSections);
});
function GetSections()
{
var dtToday = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate() );
// Remove all values from Section
$("select[title='Section'] option").each(function(){
$(this).remove();
});
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle('Sections');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query></Query></View>');
var collListItems = list.getItems(camlQuery)
ctx.load(collListItems);
ctx.executeQueryAsync(
function(){
var swListItms = collListItems.getEnumerator();
while (swListItms.moveNext())
{
var swItm = swListItms.get_current();
var itmSDt = swItm.get_item("BeginDate");
var itmEDt = swItm.get_item("EndDate");
var quest = swItm.get_item("Title");
if((dtToday >= itmSDt) && (dtToday <= itmEDt))
{
console.log("yes-"+quest);
$("select[title='Section'] option").prepend('<option value="" selected="selected">--select--</option>')
} //else {
//console.log("no-"+quest);
//}
}
},
function(sender,args){
console.log("Request Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
先谢谢你。
修改代码片段如下。
<script type="text/javascript">
$(document).ready(function() {
//don't exectute any jsom until sp.js file has loaded.
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', GetSections);
});
function GetSections()
{
var dtToday = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate() );
// Remove all values from Section
$("select[title='Section'] option").each(function(){
$(this).remove();
});
var ctx = new SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle('Sections');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query></Query></View>');
var collListItems = list.getItems(camlQuery)
ctx.load(collListItems);
ctx.executeQueryAsync(
function(){
$("select[title='Section']").prepend('<option value="" selected="selected">--select--</option>')
var swListItms = collListItems.getEnumerator();
while (swListItms.moveNext())
{
var swItm = swListItms.get_current();
var itmSDt = swItm.get_item("BeginDate");
var itmEDt = swItm.get_item("EndDate");
var quest = swItm.get_item("Title");
if((dtToday >= itmSDt) && (dtToday <= itmEDt))
{
console.log("yes-"+quest);
$("select[title='Section']").append("<option value='"+quest+"'>"+quest+"</option>")
}
}
},
function(sender,args){
console.log("Request Failed."+args.get_message() + "\n" + args.get_stackTrace());
}
);
}
</script>
<select title="Section"></select>