【问题标题】:I can't use Eval inside LinkButton?我不能在 LinkBut​​ton 中使用 Eval?
【发布时间】:2013-11-14 10:17:42
【问题描述】:

我在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.

【问题讨论】:

  • 你可以尝试为LinkButton调用DataBind方法
  • 你能给我举个Grundy的例子吗?

标签: c# .net webforms


【解决方案1】:

一切都比看起来容易

标签中服务器和文本这两个词之间需要一个空格。实际上,大多数标签都需要在元素之间添加间距。所以试试这个标签,注意我在标签内的元素之间添加了一些空格。
查看更多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> 

【讨论】:

  • 对不起,我的代码有什么不同? :O 似乎我得到了同样的错误......
  • 在您的代码中 &lt;%#Eval("UniqueIDcrushsite")%&gt;' 即没有任何空格
  • 带空格和单引号?还是双引号?
【解决方案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。

【讨论】:

  • @markzzz:尝试仅评估 CssClass 属性中的 UniqueID。它还打印代码吗?
  • @markzzz 我想把 CssClass 属性值计算放在单引号内,就像上面写的那样应该可以工作
  • 我已经在转发器中使用不同的表达式对此进行了测试。它适用于 .NET 4.0 和 3.5。
猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 2020-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多