2012-08-16 19 views
1

我想弄清楚是否有辦法從數據庫字段中提取代碼並將其呈現在網站上。例如,我從數據庫中的字段中提取以下內容:從數據庫拉ASPX.NET代碼

<asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1" 
Height="324px" Width="849px" Palette="EarthTones"> 
<Series> 
     <asp:Series Name="Series1" XValueMember="UserID" YValueMembers="AvgAvail" XAxisType="Primary" IsValueShownAsLabel="true"> 
     </asp:Series> 
</Series> 
     <ChartAreas> 
     <asp:ChartArea Name="ChartArea1" > 
     <AxisX Interval="1"><MajorGrid Enabled="false" /></AxisX> 
     </asp:ChartArea> 
     </ChartAreas> 
</asp:Chart> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="DELETED" SelectCommand="REALLYLONG"></asp:SqlDataSource> 

而我希望.NET呈現圖表。

這裏是前端:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<Triggers><asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /></Triggers> 
<ContentTemplate><%=MainTile %> 

</ContentTemplate> 
</asp:UpdatePanel> 

所以基本上在我拉從DB字段中的代碼,然後將其設置= MainTile和具有圖表呈現的pageLoad的()事件。目前它只是將ASP代碼放入頁面源代碼中。

在此先感謝!

回答

1

您需要ParseControl功能...

下面是一些代碼,我用所有的時間來呈現從數據庫中存儲的代碼的頁面模板。它構建出整個控制樹。這很棒!

Template t = new Template(templateId); 
Control c = ParseControl(t.TemplateContent); 
Page.Controls.Add(c); 
+0

感謝您的快速回復 - 你可以給我一個完整的例子,你如何做到這一點? – Wjdavis5 2012-08-17 12:15:18

+0

我能夠把這個主要工作,但我霧如何控制頁面上的控件放置位置。現在它被添加到頁面的底部。 – Wjdavis5 2012-08-17 12:38:22

+0

Got it!非常感謝你爲這個項目節省了大量的時間。 '' '控件c = ParseCOntrols((string)dbReader [「Tile_Content」]); 'derp.controls.add(c)' – Wjdavis5 2012-08-17 13:17:12

0

如果你只需要加載圖表的外觀 - 你可以在你的ASPX標記和簡單的負載通過「Chart.Serializer.Load()」方法的出現數據有靜態圖表控件。