如何运行从数据库中检索的asp代码

时间:2013-09-03 08:44:47

标签: html asp.net controls

我的ASP项目中只有一个页面,在点击其他链接后,我从数据库中检索相应的HTML并加载它。所以我有一些链接,它们始终位于页面中(HTML中未从数据库中检索到的部分)但在某些div中我得到了HTML,在那里我也有链接,我就是喜欢以ASP LinkButton控件运行。

这就是f.e.,它始终保持:

<div id="mainCenter">
    <asp:Literal ID="ltlContentCenter" runat="server" />
</div>

所以在我的代码背后我有这个:

protected void Page_Load(object sender, EventArgs e) {
    ltlContentCenter.Text = getPageCenter("media"); //function that retrieves
    ltlContentSide.Text = getPageSide("media");    // the HTML from the database
}

我在DB中对应的是:

<div class="onCenterSmall">
    <asp:LinkButton ID="LinkButton10" Text="test" CommandArgument="test" OnCommand="loadPage_Command"
                runat="server" />
</div>
<div class="onCenterSmall"></div>
<div class="onCenterSmall"></div>

这一大块HTML只是放在页面上的<div id="mainCenter"><!-- in here --></div>之间。 正如你自己可以看到的,我得到的结果是字符串。对于那些没问题的HTML代码,但对于<asp:LinkButton...不太有用的代码。任何建议我如何以相同的方式完成所有工作(或至少保留逻辑),但让LinkButton control工作?

2 个答案:

答案 0 :(得分:1)

我怀疑你正在采取的方法(你为什么要在你的数据库中存储ASP.NET标记的片段?)但如果必须,我认为Page.ParseControl是你的朋友。请参阅MSDN: TemplateControl.ParseControl Method (String)

您可以使用Page.ParseControl从输入字符串中构建Control,然后您可以将其附加到任何控件的Controls集合(例如PlaceHolder control )。

答案 1 :(得分:0)

我知道这不会回答你的问题,只是一些想法:

  1. 为什么需要使用链接按钮?为什么不使用标准的html锚标记

  2. 如果是因为你需要执行一些代码,你打算如何处理背后的代码?你是否会假设存储在DB中的所有html都继承自同一个类。

  3. 必须要说的是,这听起来像是一个非常可怕的想法。你想解决什么问题?