0

我的 ASP 项目中有一个页面,单击不同的链接时,我从数据库中检索相应的 HTML 并加载它。所以我有一些链接,它们一直都在页面中(不是从数据库中检索到的 HTML 部分),但是在一些 div 中我得到了 HTML,在那里我也有链接,我会喜欢作为 ASPLinkButton控件运行。

这是,fe,始终保持:

<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
}

我在数据库中对应的是:

<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工作正常吗?

4

2 回答 2

1

我对您采用的方法有疑问(为什么要在数据库中存储 ASP.NET 标记的片段?)但如果必须,我认为Page.ParseControl是您的朋友。请参阅MSDN:TemplateControl.ParseControl 方法(字符串)

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

于 2013-09-03T09:04:58.273 回答
0

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

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

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

不得不说,这听起来像是一个非常糟糕的主意。你想解决什么问题?

于 2013-09-03T09:09:42.823 回答