サーバー側コードで 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\\\"]\") %>";
これを達成する方法、または同様のことを行う方法はありますか?
私が今考えることができる唯一の他のオプションは、DataList
andを使用して破棄し、ItemTemplate
各行を自分で生成することですItemTemplate
..