我需要使用列表框(DropDown)创建一个包含库中所有文件的页面,然后创建 PDF预览。
我使用 HTML表单Web部件创建了一个页面。预览可以这样制作:
<embed height="800" width="1200" src="..." type="application/pdf">
如何在库中提供包含所有项目的列表框,并将来源更改为所选项目?
答案 0 :(得分:0)
好的,我明白了。
我使用 HTML表单Web部件创建了一个新页面,并使用Javascript获取此内容:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
var siteUrl = '/XX';
var listName = 'YY';
var listItems;
function retrieveAllListProperties() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle(listName);
var query = new SP.CamlQuery();
query.set_viewXml("<View Scope='RecursiveAll'><Query><OrderBy><FieldRef Name='FileLeafRef' Ascending='True' /></OrderBy></Query></View>");
listItems = oList.getItems(query);
clientContext.load(listItems);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var listEnumerator = listItems.getEnumerator();
$('#select').find('option').remove().end().append('<option value="">Please select</option>');
while (listEnumerator.moveNext()) {
var listItem = listEnumerator.get_current();
$('#select').append('<option value="http://host' + listItem.get_item('FileRef') + '">' + listItem.get_item('FileLeafRef') + '</option>');
}
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
$(this).ready(function() {
ExecuteOrDelayUntilScriptLoaded(retrieveAllListProperties, "sp.js");
$('#etiketten').change(function() {
$('#pdf').remove();
if($('#select').val() != '') {
$('#container').append('<embed name="pdf" id="pdf" height="768" width="1024" src="' + $('#select').val() + '" type="application/pdf">');
}
});
});
</script>
<div id="container" name="container">
<select name="select" id="select">
<option value="">Please select</option>
</select>
<br/>
</div>