0

私がやりたいのは、問題の列の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をセッション変数と比較し、それに応じて行クラスを変更できるようにするためです。

これを回避する方法はありますか?

4

1 に答える 1

1

クラス属性で同じタイプのロジックを実行できるはずです。

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

これはうまくいくはずだと思います。

于 2012-08-07T15:54:16.207 に答える