0

我想要做的是将一个 ID 分配给一个表行,其值是相关列的 ID。

澄清。我有一个带有 fields 的数据表[ID] [Name] [Description],并像这样填充ListView:(为了清楚起见,我在这里简化了代码)

<asp:ListView ID="MainList" runat="server" DataKeyNames="id">
    <layouttemplate>
        <dl id="header">
            <dd class="rowHeader">Name</dd>
            <dd class="rowHeader">Description</dd>
        </dl>
        <asp:Panel runat="server" ID="itemPlaceholder">
        </asp:Panel>
    </layouttemplate>
    <itemtemplate>
        <dl class="row">
            <dd><%# Eval("name")%></dd>
            <dd><%# Eval("description")%></dd>
        </dl>
    </itemtemplate>
</asp:ListView>

现在,我尝试的是像这样添加它。

<dl class="row" id='<%# Eval("id")%>'> 

当然它有效,但我需要将它作为变量传递,因为我需要用它检查一些东西。像这样:

<% Dim id as Integer = Eval("id") %>
<dl class="row" id='<%=id %>'>

我收到了这个错误:

Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.

我明白为什么......我需要这个的原因是我可以将 id 与会话变量进行比较并相应地更改行类。

有什么办法可以解决这个问题吗?

4

1 回答 1

1

您应该能够在类属性中执行相同类型的逻辑:

<dl class="row" id='<%# Eval("id")%>' class='<%= Eval("id") == Session["myValue"] ? "someCssClass" : "otherCssClass" %>'>

我认为这应该有效。

于 2012-08-07T15:54:16.207 回答