是否可以在您的服務器端代碼中以編程方式將C#內聯表達式作爲ASP.NET控件的值插入?在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頁面。但是,我不知道如何添加內聯表達式。
我試着做以下,但它並沒有因爲類型不匹配的工作:
Label label = new Label();
label.Text = "<%# Eval(\"this.Values[\\\"Age\\\"]\") %>";
label.ForeColor = "<%# Eval(\"this.ValueColors[\\\"Age\\\"]\") %>";
是否有實現這一目標或做類似的東西的一種方式?
,我能想到的,現在我唯一的其他選擇是使用DataList
和ItemTemplate
報廢和剛纔生成的每一行自己..這是一個很大更多的編碼與只使用ItemTemplate
。