如何将 asp:placeholder 的内容放入可以应用 xml 转换的变量中?
背景
我正在尝试自定义 .NET Web 应用程序的布局。这是一个企业产品,允许我在 ascx 文件中添加/删除内容块,并更改 css 属性。我无权访问任何 CodeBehind 文件(即 .cs 源代码),但如果我知道如何将这些文件添加到 .ascx 文件中,我可以编写自己的 .cs 文件。但是,实际内容源于 <asp:placeholders>
因此我们通过添加/删除对占位符的调用来构建页面。
总体目标是替换占位符生成的 html 表,例如<div>
,以便应用程序可以响应。
例子
占位符的一个示例使用是
<asp:PlaceHolder ID="TreeHead" runat="server"></asp:PlaceHolder>
生成输出
<table id="loginBox" style="padding: 2px; margin: 0px;" cellpadding="2">
<tr>
<td><label for="LM_1">Please enter your username</label></td>
<td><input name="LM$1$" type="text" id="LM_1" /></td>
</tr>
<tr>
<td><label for="LM_2">Please enter your password</label></td>
<td><input name="LM$2$" type="password" id="LM_2"/></td>
</tr>
</table>
我想把它转换成这样的东西:
<div id="loginBox">
<div class="row">
<div class="element"><label for="LM_1">Please enter your username</label> </div>
<div class="element"><input name="LM$1$" type="text" id="LM_1" /> </div>
</div>
<div class="row">
<div class="element"> <label for="LM_2">Please enter your password</label>
</div>
<div class="element"> <input name="LM$2$" type="password" id="LM_2"/> </div>
</div>
我的想法是
- 包
<table>
进去<xml></xml>
标签 - 使用 xslt 转换表格
- 提取结果
<div id="loginBox"></div>
并输出
我在想我可以通过 .ascx 文件中的一些内联 c# 来实现这一点,比如
<% string table = "<xml>" + <asp:PlaceHolder ID="TreeHead" runat="server"></asp:PlaceHolder> + "</xml>"; %>
这失败了,因为我相信任何 c# 代码都需要在CodeBehind文件中,所以我被卡住了。如果我可以将表变成一个变量,那么我可以按照这个例子来应用转换。我找到了几个链接(见下文),它们做类似的事情,但我相信这些链接需要访问 Codebehind(即 *.cs)文件
- asp:占位符内容到字符串
- http://www.tomot.de/en-us/article/3/asp.net/create-a-control-in-the-codebehind-and-retrieve-its-rendered-output
问题
如何将 asp:placeholder 的内容放入可以应用 xml 转换的变量中?
感谢您的任何帮助。