我正在adobe cq5上开发组件,需要一些帮助/建议。我想创建一个电话号码组件,其中一部分使用电话号码前缀。我希望页面作者能够设置前缀的范围(即它们需要内容管理),但我不希望他们每次添加电话号码组件时都必须重新指定此列表。前缀列表需要全局维护而不是组件级属性。我知道如何设置和使用组件级属性,而不是全局属性。有人能告诉我如何或指出我在一个例子的正确方向?
答案 0 :(得分:1)
您是否考虑过使用设计对话框而不是编辑对话框?这可以解决您的问题。 There是关于此主题的一些信息。
答案 1 :(得分:1)
创建对话框的一部分是您正在分配<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title id="titleTag"><%: Page.Title %> 401(k) Account</title>
<asp:PlaceHolder runat="server">
<%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>
<link runat="server" id="StyleLink1" rel="stylesheet" type="text/css" href="~/Content/Site_vsta.css" />
<link runat="server" id="Link1" rel="stylesheet" type="text/css" href="/Content/Site.css"/>
<link runat="server" id="Link2" rel="stylesheet" type="text/css" href="~/Content/datepicker.css" />
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<script src="Scripts/bootstrap-datepicker.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server">
<Scripts>
<%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
<div class="container">
<asp:TextBox ID="DateTextbox" runat="server" CssClass="m-wrap span12 date form_datetime" ClientIDMode="Static"></asp:TextBox>
</div>
<script type="text/javascript">
$(document).ready(function () {
var dp = $('#<%=DateTextbox.ClientID%>');
dp.datepicker({
changeMonth: true,
changeYear: true,
format: "dd.mm.yyyy",
language: "tr"
}).on('changeDate', function (ev) {
$(this).blur();
$(this).datepicker('hide');
});
});
</script>
</form>
</body>
</html>
,它使对话框能够理解您要存储值的位置。
这通常采用name
的形式,人们忘记的是./foo
字段是路径规范。您也可以指定name
的名称,该名称将提供您正在寻找的功能。
然后要使用这些数据,您需要在同一个地方查看代码。属性对象此时不会拥有它,因为它只提供您所在资源的关系属性。
答案 2 :(得分:0)
如果您因任何原因无法使用设计对话框,我认为其他选项可能是使用参考组件。