如何在dotnetnuke中为dnn控件添加title属性?

时间:2014-05-14 17:38:35

标签: html .net asp-classic dotnetnuke

如何将标题属性添加到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>

2 个答案:

答案 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";

Source

答案 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来标识特定标签并相应地处理它。