2

我在一个Repeater. 这是我的代码LinkButton

<asp:LinkButton 
    ID="AggiungiSocial" 
    CssClass="<%# ((Eval("UniqueID").ToString() != SocialEngine.paginaCrushsite.ToString()) ? "dashboard-checkaccess" : "dashboard-crushsite")%>" 
    CommandArgument='<%#Eval("UniqueID") %>' 
    runat="server" 
    onclick="cmdAggregaSocial_Click">
    Link
</asp:LinkButton> 

但似乎我不能在里面使用 Eval CssClass?它说The server tag is not well formed.

4

2 回答 2

2

在这种情况下,在单引号之间使用 CssClass 表达式'应该可以:

<asp:LinkButton 
    ID="AggiungiSocial" 
    CssClass='<%# ((Eval("UniqueID").ToString() != SocialEngine.paginaCrushsite.ToString()) ? "dashboard-checkaccess" : "dashboard-crushsite") %>' 
    CommandArgument='<%#Eval("UniqueID") %>' 
    runat="server" 
    onclick="cmdAggregaSocial_Click">
    Link
</asp:LinkButton> 

为了更好的可读性,您可以使用返回 CssClass 的函数代码。

CssClass='<%# GetCssClass(Eval("UniqueID").ToString())%>' 

如果由于某种奇怪的原因没有任何效果,请实现转发器ItemDataBound事件并在那里设置 LinkBut​​ton CssClass。

于 2013-11-14T10:34:25.487 回答
2

一切都比看起来容易

服务器和文本这两个词在标签中需要一个空格。实际上,大多数标签都需要在元素之间添加间距。所以试试这个标签,注意我在标签内的元素之间添加了一些空格。
查看更多ASP.NET Gridview 服务器标记格式不正确

尝试像这样更改您的代码

<asp:LinkButton 
    ID="AggiungiSocial" 
    CssClass='<%# ((Eval("UniqueID").ToString() != SocialEngine.paginaCrushsite.ToString()) ? "dashboard-checkaccess" : "dashboard-crushsite") %>' 
    CommandArgument='<%# Eval("UniqueID") %>' 
    runat="server" 
    onclick="cmdAggregaSocial_Click">
    Link
</asp:LinkButton> 
于 2013-11-14T10:55:45.000 回答