是否有可能在一个 aspx 文件中调用一个返回带有 ASP.NET 代码的字符串的方法,并在重新加载页面之前运行该代码?
所以几乎有以下内容:
<asp:DataList //blahblah>
<ItemTemplate>
<%= GenerateTable() %>
</ItemTemplate>
</asp:DataList>
GenerateTable() 创建一个表,其中包含 asp:Label 对象,其值由 asp:DataList 的 DataSource 确定。
现在,我已经正确生成了 ASP.NET 代码。问题是在页面加载之前它没有被翻译成 HTML,所以你看不到它。
更新: 我想要一个单独的方法来生成 ASP.NET 代码的原因是因为我想让显示的列可配置,所以网站并不总是显示相同的列。
解决方案尝试的更新: 我尝试创建以下用户控件来插入我的 ASP.NET 代码,但它仍然遇到同样的问题。我做错了吗?
用户控制:
<%@ Control Language="C#" CodeBehind="TableGenerator.ascx.cs" Inherits="DagReport_WebRole.DynamicData.FieldTemplates.TableGenerator" %>
<div class="tableRow">
<%= this.GetASPCode() %>
</div>
用户控制 C#:使用 System.Web.UI;
namespace DagReport_WebRole.DynamicData.FieldTemplates
{
public partial class TableGenerator : System.Web.DynamicData.FieldTemplateUserControl
{
public string Code { get; set; }
public string GetASPCode()
{
return Code;
}
}
}
在我的 ASPX 文件中:
<ItemTemplate>
<div class="dagRow"></div>
<userControl:TableGenerator
Code="<%=GetRowASPCode()%>"></userControl:TableGenerator>
</ItemTemplate>