如何将标题属性添加到DNN:Label控件并将其作为标题属性<label title="myTitle">
呈现在html中?
这是我的代码:
<div class="dnnFormItem">
<dnn:label id="lblDateNeeded" runat="server" controlname="DateNeeded" resourcekey="DateNeeded" />
<dnn:dnndatepicker runat="server" cssclass="dnnFormInput" id="DateNeeded" skin="Office2010Silver">
<Calendar UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False" ViewSelectorText="x" Skin="Office2010Silver"></Calendar>
<DateInput DisplayDateFormat="M/d/yyyy" DateFormat="M/d/yyyy" LabelWidth="40%"></DateInput>
<DatePopupButton ImageUrl="" HoverImageUrl=""></DatePopupButton>
</dnn:dnndatepicker>
</div>
答案 0 :(得分:1)
this.Page.Title = "My Custom Title";
然而,在DotNetNuke中,这只适用于Page_PreRender方法(在DotNetNuke 6.2.3中验证)。
如果你想提前设置它,你仍然必须使用这个归结为这个的方法:
((DotNetNuke.Framework.CDefault)this.Page).Title = "My Custom Title";
以上内容适用于Page_Load,Page_Init和Page_PreRender。
如果您想进一步模块化,可以在基类中为模块添加以下内容(总是这样做的好主意):
public DotNetNuke.Framework.CDefault BasePage {
get { return (DotNetNuke.Framework.CDefault)this.Page; }
}
然后简单地使用:
this.BasePage.Title = "My Custom Title";
这种方法的优点在于您可以将它用于元描述和关键字。
this.BasePage.Description = "My Custom Description";
this.BasePage.Keywords = "My Custom Keywords";
答案 1 :(得分:0)
DNN标签中无法访问title属性。正如OP所指出的,如果在前端代码中指定为属性,它将在输出HTML中被忽略。此外,如果使用YOURLABEL.Attributes.Add()
添加到后面的代码中,它也将被忽略。
由于无法使用DNN标签的属性,因此需要另一个选项。一种选择是用JQuery来解决这个问题。
DNN标签的HTML输出如下所示:
<div class="dnnLabel">
<label>
<span id="#ASP_PATH#_#YOURID#">Test Label</span>
</label>
</div>
以下JQuery将根据SPAN中的文本设置标签的title属性:
$(&#39;标签&#39;)。each(function(){ $(this).attr(&#39; title&#39;,$(this).text()。trim()); })运行此操作会对HTML产生以下更改:
<div class="dnnLabel">
<label title="Test Label">
<span id="#ASP_PATH#_#YOURID#">Test Label</span>
</label>
</div>
此功能在页面上的所有标签上运行。如果JQuery选择器不是页面上的所有内容,则可以修改JQuery选择器以识别需要修改的标签。
这可能无法生成您正在寻找的确切输出,但您在JQuery函数方面具有足够的灵活性。如果您需要为标签设置一个特殊值并且您知道文本将是什么,您可以使用if或switch来标识特定标签并相应地处理它。