我在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>
但似乎我不能在CssClass
内使用Eval?它说The server tag is not well formed.
答案 0 :(得分: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
事件并在那里设置LinkButton CssClass。
答案 1 :(得分:2)
一切都比看起来容易
单词Server和Text在标签中需要一个空格。实际上,大多数标签需要在元素之间添加间距。所以请尝试使用此标记,注意我在标记内的元素之间添加了一些空格 查看更多ASP.NET Gridview the server tag is not well formed
尝试像这样更改你的代码
<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>