将 ASP 经典 table 转换为 ASP.NET Repeater
Converting ASP classic table to ASP.NET Repeater
我正在努力使这个网站现代化。我有一份报告 table 正在以旧样式生成,例如:
Dim sTable = "<table class=""stat"">"
sTable = sTable & "<thead><tr><th colspan=20><Status Report: " & Session("ProcessYear") & "</th></tr>"
我正在将其转换为 Repeater,但我不知道如何在 <HeaderTemplate>
中包含会话数据。我有:
<asp:Repeater id="Dashboard" runat="server">
<HeaderTemplate>
<table class="stat">
<thead>
<tr><th colspan="20">Appeal Status Report: ???? </th></tr>
...
一些候选者是 asp:PlaceHolder
,以及类似 <%# ((RepeaterItem)Container.Parent.Parent).DataItem %>
的东西(参见 Accessing parent data in nested repeater, in the HeaderTemplate),但我不知道它指的是什么。
不幸的是,无法重构会话依赖项。有什么想法吗?我是 ASP.NET 的新手。此页面的代码文件位于 VB.NET.
您需要查看 On Item Data Bound event,以便您可以在绑定期间执行一些代码隐藏工作。
您需要检查项目对象,确定 its a header row, 然后访问您的会话对象。
粗略的改编可能如下所示:
ASPX
<asp:Repeater id="Dashboard" runat="server" OnItemDataBound="ItemDataBound">
<HeaderTemplate>
<table class="stat">
<thead>
<tr>
<th colspan="20">
Appeal Status Report: <asp:Label ID="YourLabel"/>
</th>
</tr>
...
...
...
Code Behind
void ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
((Label)e.Item.FindControl("YourLabel")).Text = Session["YourSession"];
}
}
您也可以在此处对页脚、项目和交替项目进行操作。
我正在努力使这个网站现代化。我有一份报告 table 正在以旧样式生成,例如:
Dim sTable = "<table class=""stat"">"
sTable = sTable & "<thead><tr><th colspan=20><Status Report: " & Session("ProcessYear") & "</th></tr>"
我正在将其转换为 Repeater,但我不知道如何在 <HeaderTemplate>
中包含会话数据。我有:
<asp:Repeater id="Dashboard" runat="server">
<HeaderTemplate>
<table class="stat">
<thead>
<tr><th colspan="20">Appeal Status Report: ???? </th></tr>
...
一些候选者是 asp:PlaceHolder
,以及类似 <%# ((RepeaterItem)Container.Parent.Parent).DataItem %>
的东西(参见 Accessing parent data in nested repeater, in the HeaderTemplate),但我不知道它指的是什么。
不幸的是,无法重构会话依赖项。有什么想法吗?我是 ASP.NET 的新手。此页面的代码文件位于 VB.NET.
您需要查看 On Item Data Bound event,以便您可以在绑定期间执行一些代码隐藏工作。
您需要检查项目对象,确定 its a header row, 然后访问您的会话对象。
粗略的改编可能如下所示:
ASPX
<asp:Repeater id="Dashboard" runat="server" OnItemDataBound="ItemDataBound">
<HeaderTemplate>
<table class="stat">
<thead>
<tr>
<th colspan="20">
Appeal Status Report: <asp:Label ID="YourLabel"/>
</th>
</tr>
...
...
...
Code Behind
void ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
((Label)e.Item.FindControl("YourLabel")).Text = Session["YourSession"];
}
}
您也可以在此处对页脚、项目和交替项目进行操作。