我有这段代码打开带有内容选择器的模型窗口,并为任何选定的节点返回breadrumb字符串。这适用于自定义区域。
我想要做的是,在自定义区域中,在模式弹出窗口中打开媒体选择器,这样我就可以获得所选媒体项的ID。我希望只是改编这个代码('内容' - >'媒体'作为一个开始),但我的改变没有奏效,我也不知道它是否有意义。 'GetPickerurl'是令人沮丧但我不知道是否有新方法?我正在使用umbraco 6.1.6。非常感谢
<script>
function showTree() {
var treePicker = parent.UmbClientMgr.openModalWindow('@(umbraco.uicontrols.TreeUrlGenerator.GetPickerUrl(true,"content","content"))', 'Select', true, 600, 425, null, null, null, function (args) {
$.ajax({
type: "POST",
url: '/umbraco/webservices/legacyAjaxCalls.asmx/GetNodeBreadcrumbs',
data: '{ "nodeId": ' + args.outVal + ' }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var a = msg.d;
var name = a[a.length - 1];
var breadcrumbs = a.join(" > ");
$('p#pickedContent').html(breadcrumbs);
}
});
});
}
</script>
<a href="javascript: showTree();">Pick Content</a>
<p id="pickedContent"></p>
答案 0 :(得分:0)
我之前没有看过您的方法,但您可以使用内置媒体和内容选择器控件。 将其包含在aspx文件的头部
中<%@ Register Namespace="umbraco.uicontrols.TreePicker" Assembly="controls" TagPrefix="umbtree" %>
获取媒体选择器控件
<umbtree:SimpleMediaPicker runat="server" id="MediaSimpleContentPicker" />
和内容选择器
<umbtree:SimpleContentPicker runat="server" id="TreeSimpleContentPicker" />
答案 1 :(得分:0)
发现问题。在查看弹出窗口中的url后,我可以看到该字符串未被正确编码 -
/dialogs/treepicker.aspx?rnd=b235c90e995344f6a2e299a21013c7a8&id=-1&treeType=media&contextMenu=true&isDialog=false&
它只需要围绕通话的Html.Raw - 还要注意“媒体”参数。
parent.UmbClientMgr.openModalWindow('@(Html.Raw(umbraco.uicontrols.TreeUrlGenerator.GetPickerUrl("media", "media")))