ASP.NET视图引擎不会执行我的代码片段

时间:2010-01-19 00:36:22

标签: .net asp.net data-binding webforms

我有asp:DataGrid的模板列。以下是其中一列:

<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="btnDetails"
    Runat="server" 
    CommandName="details" 
    Text="Details"
    Font-Size="0.8em"
    CommandArgument='a=<%# Eval("a")%>&amp;b=<%# Eval("b")%>' />
<...>

当命令触发时,CommandArgument没有评估 - 它是字符串a=<%# Eval("a")%>&b=<%# Eval("b")%>,而不是我想要的a=5&b=6

我这样做有什么不对?

2 个答案:

答案 0 :(得分:2)

如果你想要另一种方式,是的Mitch是正确的:

CommandArgument='<%# String.Format("a={0}&b={1}",
  DataBinder.Eval(Container.DataItem, "a"), 
  DataBinder.Eval(Container.DataItem, "b")) %>'

必须调用DataBind,否则不会发生这些替换...

答案 1 :(得分:1)

<%# Eval() %>是数据绑定表达式。您不能将它与eval表达式之外的另一个字符串连接起来。