ASP:LinkButton and Eval

5

我正在使用GridView中的TemplateField中的ItemTemplate来使用ASP: LinkButton。对于链接按钮的命令参数,我想传递数据源中该行的ID,因此我正在执行以下操作:

<asp:LinkButton ID="viewLogButton" CommandName="viewLog" CommandArgument="<%#Eval("ID")%>" Text="View Log" runat="server"/>

很遗憾,生成的HTML如下:
<asp:LinkButton ID="viewLogButton" CommandName="viewLog" CommandArgument="3" Text="View Log" runat="server"/>

看起来它能够正确解析Eval(),但是这在某种程度上导致它无法解析LinkButton标签,并将其作为文字直接输出。有人知道:

a)为什么会发生这种情况, b)如何解决这个问题?


"<%#Eval("ID")%>" 看起来很难解析。 - bzlm
你可以发布一些代码吗?听起来你的LinkButton可能被Literal控件包含了。 - Dillie-O
1个回答

9

虽然这可能不是导致它的原因,但通常我会这样定义它:

CommandArgument='<%#Eval("ID")%>'

请贴出GridView的其余标记,因为它不应该这样做。

1
我真傻,我猜引号搞了它。谢谢。我假设所有模板都在实际的asp:*标记之前解析 - 估计不是这样。 - sgibbons
刚遇到了同样的问题,正准备问同样的问题。 - CJM
没有 StackOverflow,我该怎么办啊! - Matthew Lock
先生 @eglasius,我有同样的问题,你能帮我解决吗?http://stackoverflow.com/questions/37499531/gridview-row-command-not-working - Paolo Duhaylungsod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接