我的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
工作?
答案 0 :(得分:1)
我怀疑你正在采取的方法(你为什么要在你的数据库中存储ASP.NET标记的片段?)但如果必须,我认为Page.ParseControl
是你的朋友。请参阅MSDN: TemplateControl.ParseControl Method (String)。
您可以使用Page.ParseControl
从输入字符串中构建Control
,然后您可以将其附加到任何控件的Controls
集合(例如PlaceHolder
control )。
答案 1 :(得分:0)
我知道这不会回答你的问题,只是一些想法:
为什么需要使用链接按钮?为什么不使用标准的html锚标记
如果是因为你需要执行一些代码,你打算如何处理背后的代码?你是否会假设存储在DB中的所有html都继承自同一个类。
必须要说的是,这听起来像是一个非常可怕的想法。你想解决什么问题?