.net - ASP.NET View 引擎不会执行我的代码片段

标签 .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如我所愿。

我这样做有什么问题吗?

最佳答案

是的,米奇是对的,如果你想要另一种方式:

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

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

关于.net - ASP.NET View 引擎不会执行我的代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2090263/

相关文章:

c# - 如何获得 "200 OK"的 HttpWebResponse?

c# - 十六进制输出中的扩展工具包的 NumericUpDown

c# - 为什么找不到我的 ViewModel?

wpf - 在 WPF 文本框中保留换行符时忽略

.net - 常见原因 - .NET 下的访问冲突错误

c# - 将 EF Code First 应用程序部署到生产数据库

asp.net - 如何诊断IIS致命通信错误问题

asp.net - "web"CurrentSessionContext/ISessionFactory.GetCurrentSession 周围的线程安全

asp.net - 始终显示 FooterTemplate,即使没有数据

验证已触发,但 Silverlight 4 中的用户控件未出现红色边框