从ascx文件中可以看出dnnTitle也是一个Control,如何更改名称呢?
看源文件~/Admin/Containers/Title.ascx
Title中包含一个DNNLabelEdit:
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.UI.WebControls" Assembly="DotNetNuke.WebControls" %>
<dnn:DNNLabelEdit id="lblTitle" runat="server" cssclass="Head" enableviewstate="False" MouseOverCssClass="LabelEditOverClass"
LabelEditCssClass="LabelEditTextClass" EditEnabled="True"></dnn:DNNLabelEdit>
而DNNLabelEdit是继承自Label的

更为精确的修改代码应该是:
if (title != null)
{
Label lbTitle = title.FindControl("lblTitle") as as Label;
if (lbTitle != null)
{
lbTitle.Text = objTYDMItem.Title;
}
}
4、 标题中的例外
但是,DNN中还支持[TITLE:1]的写法,在由HTML编译为ascx时,DNN将该对象的ID改为了“dnnTITLE1”,所以有时你在
Control title = (Control)this.ContainerControl.FindControl("dnnTITLE");时返回null。
所有我们的程序被迫改写为
{
if (ctl.ID == null)
continue;
if (Regex.IsMatch(ctl.ID, "dnnTITLE"))
{
lbTitle = title.FindControl("lblTitle") as Label;
break;
}
}