2013-08-23 26 views
0

是否可以在您的服務器端代碼中以編程方式將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\\\"]\") %>"; 

是否有實現這一目標或做類似的東西的一種方式?

,我能想到的,現在

我唯一的其他選擇是使用DataListItemTemplate報廢和剛纔生成的每一行自己..這是一個很大更多的編碼與只使用ItemTemplate

回答

相關問題