我有asp:DataGrid
的模板列。以下是其中一列:
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="btnDetails"
Runat="server"
CommandName="details"
Text="Details"
Font-Size="0.8em"
CommandArgument='a=<%# Eval("a")%>&b=<%# Eval("b")%>' />
<...>
当命令触发时,CommandArgument
没有评估 - 它是字符串a=<%# Eval("a")%>&b=<%# Eval("b")%>
,而不是我想要的a=5&b=6
。
我这样做有什么不对?
答案 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表达式之外的另一个字符串连接起来。