0

サーバー側コードで ASP.NET コントロールの値として C# インライン式をプログラムで挿入することは可能ですか?

DataList現在、テーブルに大量のデータを表示するために を使用しています。そのテーブルの列を動的に変更できるようにしたいので、その中にあるコントロールを編集できる必要がありますItemTemplate

ただし、 のコントロールを編集するだけでなく、ItemTemplate表示されるものを動的に変更したいので、テンプレート内の各コントロールにバインドされている値を変更できる必要があります。

私が現在持っているのは、変更されない静的テーブルです。

<asp:DataList ID="dataList" runat="server" OnSelectedIndexChanged="dataList_OnSelectedIndexChanged" DataSourceID="peopleData">
    <ItemTemplate>
        <table>
            <tr>
                <td>
                    <asp:LinkButton ID="NameLink" OnClientClick="onPageUpdate()" CommandName="Select" Text='<%# Eval(this.Name) %>' ForeColor='<%# Eval("this.NameColor") %>' runat=Server" />
                </td>
                <td>
                    <asp:Label Text='<%# Eval("this.Values[\"Age\"]") %>' ForeColor='<%# Eval("this.ValueColors[\"Age\"]") %>' runat="Server">
                </td>
                // OTHER COLUMNS WITH DIFFERENT DATA
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
// OBJECT DATA SOURCE CODE

コントロールを ASPX Web ページに動的に追加する方法を知っています。ただし、インライン式を追加する方法がわかりません。

私は次のことを試みましたが、型の不一致のために機能しません:

Label label = new Label();
label.Text = "<%# Eval(\"this.Values[\\\"Age\\\"]\") %>";
label.ForeColor = "<%# Eval(\"this.ValueColors[\\\"Age\\\"]\") %>";

これを達成する方法、または同様のことを行う方法はありますか?

私が今考えることができる唯一の他のオプションは、DataListandを使用して破棄し、ItemTemplate各行を自分で生成することですItemTemplate..

4

1 に答える 1

0

これが役立つかどうかはわかりませんが、http://msdn.microsoft.com/en-us/library/system.web.ui.databinder(v=vs.100).aspx をご覧ください。

特性の手書きの露出の使用を示しています。あなたのプロパティが常に「マジック」と呼ばれていて、コード内でマジックに適切な値を返すとしたら、それで必要なものが得られるでしょうか?

于 2013-08-24T00:55:35.770 に答える