在ascx文件中给出这个标记:
<div class="DocumentPara">
<%#Eval("Content1").ToString%>
<%#Eval("Content2").ToString%>
</div>
我可以使用哪种语法来选择“Content1”和“Content2”的显示,具体取决于哪个主页正在调用?即:
<div class="DocumentPara">
<%#Eval("Content1").ToString%>
<If masterpage1>
<%#Eval("Content2").ToString%>
</endIf>
<If masterpage2>
<%#Eval("Content3").ToString%>
</endIf>
</div>
感谢您的帮助。
答案 0 :(得分:0)
页面的母版页可以通过Master
属性访问,因此要检查正在使用的特定母版页,您可以执行类似
if (this.Master is Master1Type)
if/else
语法也是可能的,如下所示:
<% if (this.Master is Master1Type) { %>
<%#Eval("Content2").ToString%>
<% }
else { %>
<%#Eval("Content3").ToString%>
<% } %>
然而,这对我来说看起来很脏,并且在页面标记内有条件似的这种情况并不常见。我建议在代码后面定义一个函数来处理masterpages逻辑,并从数据项中输出必要的值:
<%# GetContent(Container.DataItem) %>
protected string GetContent(object dataItem)
{
if (this.Master is Master1Type)
{
return Eval("Content2");
}
// etc
}