我创建了带有两个带状项的usercontrol,但它们出现在禁用模式下。
我尝试通过在我的js文件中为isAvailable和isEnabled函数发出警告进行检查。
Extensions.DynamicControls.prototype.isAvailable =
function DynamicControls$isAvailable(selection)
{
alert('Inside DynamicControls isAvailable');
return true;
}
在这种情况下,我没有在isAvailable函数中收到任何警报。
Extensions.DynamicControls.prototype.isEnabled =
function DynamicControls$isEnabled(selection)
{
alert('Inside DynamicControls isEnabled');
return true;
}
我能够在isEnabled函数中获取警报。
请让我知道我需要启用它们。
除此之外,我已经看过使用firebug的页面源 - 选择这两个创建的按钮usercontrol按钮,我发现 为什么默认应用该类?如果我尝试删除它,则启用按钮。
截至目前,这些仅作为功能区中的标签可见。是否还需要任何CSS使其看起来像任何其他按钮? 请建议。
答案 0 :(得分:8)
正如我answer to your previous question所示,这些方法应该被称为_isAvailable
和_isEnabled
,前面有一个下划线,这就是我猜你为什么没有被解雇了。
因此,请尝试在JavaScript中使用以下代码:
Extensions.DynamicControls.prototype._isAvailable =
function DynamicControls$_isAvailable(selection, pipeline)
{
alert('Inside DynamicControls isAvailable');
if (pipeline) {
pipeline.stop = false;
}
return true;
}
Extensions.DynamicControls.prototype._isEnabled =
function DynamicControls$_isEnabled(selection, pipeline)
{
alert('Inside DynamicControls isEnabled');
if (pipeline) {
pipeline.stop = false;
}
return true;
}
顺便说一句,查看你的命名空间Extensions.DynamicControls
我想知道你是否正在制作正确的引用,Javascript不适合你的ItemsGroup,它应该是针对特定按钮,每个命令(或按钮,如果你将拥有自己的JavaScript,它启用它并具有_execute
方法。有关详细信息,请参阅我的answer to your other question。
CSS仅用于按钮的布局,这实际上不会启用或禁用它们。虽然如果将禁用的图像分配给启用状态,则外观可能是欺骗性的。
按钮的CSS看起来像:
/* large ribbon button image */
.tridion .ribbontoolbar .button.MyBtn .image,
.tridion .ribbontoolbar .button.MyBtn.ribbonitem .image
{
background-image: url({ThemePath}Images/my-btn-img.32x32.png);
}
.tridion .ribbontoolbar .button.MyBtn.ribbonitem.disabled .image
{
background-image: url({ThemePath}Images/my-btn-img.32x32.gray.png);
}
/* small ribbon button image */
.tridion .contextmenu .item.MyBtn .image,
.tridion .ribbontoolbar.minimized .button.MyBtn .image,
.tridion .ribbontoolbar.minimized .button.MyBtn.ribbonitem .image
{
background-image: url({ThemePath}Images/my-btn-img.16x16.png);
}
.tridion .ribbontoolbar.minimized .button.MyBtn.ribbonitem.disabled .image
{
background-image: url({ThemePath}Images/my-btn-img.16x16.gray.png);
}
答案 1 :(得分:0)
你只需要返回true,你已经在做了。当然,您的命令需要通过配置与按钮相关联。
isAvailable函数仅在某些选项卡(如Create)上的工具栏按钮上调用。他们中的大多数人认为你的按钮应该始终可用,但可以被禁用(所以他们只调用isEnabled)。
但是,对于上下文菜单选项,每次右键单击时都会调用isAvailable。理想情况下,您将使用与工具栏相同的上下文菜单选项命令。