重复子布局 - 如何使其独一无二 - 以满足 ADA 要求
Repetitive sublayout - How can I make it unique - to meet ADA requirements
我有一个搜索框加载了两次 - 一次用于桌面设备,一次用于移动设备。
设备决定显示哪个。但是,由于 ADA,标签需要是唯一的。
有没有办法调用子布局并为要使用的每个 html 元素生成唯一标记?
或者,有没有办法在子布局中生成标签以确保标签是唯一的。
<div id="desktop">
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server" />
</div>
<div id="mobile-search" class="hidden">
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server" />
</div>
------------布局内
<div class="searchtool">
<img src="/includes/images/search.png" alt="Search" style="float:left"/>
<div style="float:left">
<fieldset class="search" aria-labelledby="Name">
alt 和 aria-labelledby 标签 必须是唯一的。
谢谢
只是一个想法,将设备作为参数传递并制作标签,例如"search-desktop" 或 "search-mobile".
详情请看这里 - http://imjo.hn/2012/02/23/passing-properties-into-sitecore-sublayouts/
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server"
Parameters="device=mobile" />
<img src="/includes/images/search.png" alt="Search-<%=GetParameter("device") %>" style="float:left"/>
这是那篇文章中提到的辅助函数。
private NameValueCollection _ParameterCollection;
public NameValueCollection ParameterCollection
{
get
{
if (_ParameterCollection == null)
{
_ParameterCollection = new NameValueCollection();
string[] parameters = (Parent as Sublayout).Parameters.Split('&');
string[] pair;
foreach (string paramPair in parameters)
{
pair = paramPair.Split('=');
_ParameterCollection.Add(pair[0], pair[1]);
}
}
return _ParameterCollection;
}
}
public string GetParameter(string key)
{
string value = String.Empty;
string parameterValue = ParameterCollection.Get(key);
if (parameterValue != null)
{
value = parameterValue;
}
return value;
}
我最终复制了子布局部分 - 使用新名称并更改所有标签元素以反映不同的名称。
我有一个搜索框加载了两次 - 一次用于桌面设备,一次用于移动设备。
设备决定显示哪个。但是,由于 ADA,标签需要是唯一的。
有没有办法调用子布局并为要使用的每个 html 元素生成唯一标记?
或者,有没有办法在子布局中生成标签以确保标签是唯一的。
<div id="desktop">
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server" />
</div>
<div id="mobile-search" class="hidden">
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server" />
</div>
------------布局内
<div class="searchtool">
<img src="/includes/images/search.png" alt="Search" style="float:left"/>
<div style="float:left">
<fieldset class="search" aria-labelledby="Name">
alt 和 aria-labelledby 标签 必须是唯一的。
谢谢
只是一个想法,将设备作为参数传递并制作标签,例如"search-desktop" 或 "search-mobile".
详情请看这里 - http://imjo.hn/2012/02/23/passing-properties-into-sitecore-sublayouts/
<sc:Sublayout Path="~/site/sublayouts/Shared/QuickSearch.ascx" runat="server"
Parameters="device=mobile" />
<img src="/includes/images/search.png" alt="Search-<%=GetParameter("device") %>" style="float:left"/>
这是那篇文章中提到的辅助函数。
private NameValueCollection _ParameterCollection;
public NameValueCollection ParameterCollection
{
get
{
if (_ParameterCollection == null)
{
_ParameterCollection = new NameValueCollection();
string[] parameters = (Parent as Sublayout).Parameters.Split('&');
string[] pair;
foreach (string paramPair in parameters)
{
pair = paramPair.Split('=');
_ParameterCollection.Add(pair[0], pair[1]);
}
}
return _ParameterCollection;
}
}
public string GetParameter(string key)
{
string value = String.Empty;
string parameterValue = ParameterCollection.Get(key);
if (parameterValue != null)
{
value = parameterValue;
}
return value;
}
我最终复制了子布局部分 - 使用新名称并更改所有标签元素以反映不同的名称。