如何在项目模板中使用代码块

How to use codeblocks in itemtemplates

我有一个带有多个 BoundField 的 gridview。他们的数据字段是统计设置的,但我有一个字段需要 eval 才能动态绑定到字段。由于 BoundField 不支持 Eval,我添加了一个 TemplateField。这是一个例子:

                                        <asp:TemplateField HeaderText="<%$ Resources:Resource, Type%>" SortExpression="Description">
                                            <ItemStyle CssClass="gridColumn_Header" />
                                            <HeaderStyle CssClass="gridColumn_Header" />
                                            <ItemTemplate>
                                                <asp:Literal Text='<%# Eval('StreetType.Description') %>'/>
                                            </ItemTemplate>
                                        </asp:TemplateField>

但是,我收到一条错误消息,指出在此上下文中不支持代码块。

<asp: runat="server"> 中似乎不允许使用代码块,这很奇怪。网格嵌套在几个面板和更新面板中,所有这些都需要 runat 才能在代码隐藏中获取引用。

虽然我找到了问题的答案,但我仍然没有解决方案。

  <asp:TemplateField HeaderText="<%$ Resources:Resource, Type%>" SortExpression="Description">
                                        <ItemStyle CssClass="gridColumn_Header" />
                                        <HeaderStyle CssClass="gridColumn_Header" />
                                        <ItemTemplate>
                                            <asp:Literal Text='<%# Eval("StreetType.Description") %>'/>
                                        </ItemTemplate>
                                    </asp:TemplateField>

Eval 应该有双引号