是否可以在服务器端代码中以编程方式插入 C# 内联表达式作为 ASP.NET 控件的值?
我目前正在使用 aDataList
在表格中显示大量数据。我希望能够动态更改该表的列,因此我需要能够编辑其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 网页。但是,我不知道如何添加内联表达式。
我已尝试执行以下操作,但由于类型不匹配而无法正常工作:
Label label = new Label();
label.Text = "<%# Eval(\"this.Values[\\\"Age\\\"]\") %>";
label.ForeColor = "<%# Eval(\"this.ValueColors[\\\"Age\\\"]\") %>";
有没有办法实现这一目标或做类似的事情?
我现在唯一能想到的其他选择是废弃使用DataList
andItemTemplate
并自己生成每一行。与仅使用ItemTemplate
.