Движок представления ASP.NET не выполнит мои фрагменты кода - PullRequest
2 голосов
/ 19 января 2010

У меня есть 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 ]

2 голосов
/ 19 января 2010

Да, Митч прав, если вы хотите другой способ:

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

Должна быть вызвана DataBind, иначе эти замены не произойдут ...

1 голос
/ 19 января 2010

<%# Eval() %> является выражением привязки данных.Вы не можете объединить его с другой строкой вне выражения eval.

...