我想要做的是为表格行分配一个ID,其中包含相关列的ID值。
澄清。我有一个包含字段[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与会话变量进行比较并相应地更改行类。
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
您应该能够在类属性中执行相同类型的逻辑:
<dl class="row" id='<%# Eval("id")%>' class='<%= Eval("id") == Session["myValue"] ? "someCssClass" : "otherCssClass" %>'>
我认为这应该有效。