WhereCondition =中的服务器标签格式不正确

时间:2013-04-18 20:58:08

标签: asp.net kentico

我知道错误是由<%# Eval("NodeID")%>语句引起的。当我放一个文字整数时,它工作正常。我尝试将WhereCondition的外部双引号更改为单引号,并将内部引号更改为双引号,但这会引发异常。

<cms:CMSRepeater ID="subcatPreviewImages" Path= '<%# Eval("NodeAliasPath") + "/%" %>' runat="server" ClassNames="CMS.MenuItem" TransformationName="EcommerceSite.Transformations.EMCategorySmallImagePreview" OrderBy="NodeLevel, NodeOrder, NodeName" MaxRelativeLevel="4" WhereCondition="DocumentMenuItemHideInNavigation='false' AND NodeParentID= <%# Eval("NodeID")%> AND NodeLevel=3" />

1 个答案:

答案 0 :(得分:3)

您需要像使用NodeAliasPath属性一样在 databind标记内构建字符串

WhereCondition='<%# "DocumentMenuItemHideInNavigation='false' AND NodeParentID=" + Eval("NodeID") + " AND NodeLevel=3" %>'

如果您遇到混合'"字符的问题,您可能希望将构建表达式的逻辑移动到页面中的函数中:

public string GetWhereCondition(SomeType dataItem) {
    return "..." + dataItem.NodeID + "...";
}

您的代码更改为:

WhereCondition="<%# GetWhereCondition(Container.DataItem) %>"

免责声明:功能和类型名称仅作为示例组成 - 请使用适当命名的函数并替换名称不详的函数。