Ant*_*ney 8 .net c# vb.net asp.net
有没有办法在标题模板中访问数据绑定中继器的字段标题名称.所以这个......
<HeaderTemplate>
<table >
<th ></th>
<th >Forename</th>
<th >Surname</th>
<th >work email</th>
<th ></th>
</HeaderTemplate>
We get something like this.
<HeaderTemplate>
<table >
<th ></th>
<th ><%# Eval("Forename").HeaderName%></th>
<th ><%# Eval("SureName").HeaderName%></th>
<th ><%# Eval("WorkEmail").HeaderName%></th>
<th ></th>
</HeaderTemplate>
Run Code Online (Sandbox Code Playgroud)
小智 9
尝试执行Eval("Field").标头模板中的属性将抛出一个空异常.
我会做这样的事......
代码背后
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<SomeData> data = new List<SomeData>();
data.Add(new SomeData("Bob"));
data.Add(new SomeData("Joe"));
Repeater1.DataSource = data;
Repeater1.DataBind();
}
public String FirstnameColumn {
get { return "Firstname"; }
}
}
public class SomeData
{
public String Firstname { get; set; }
public SomeData(String firstname) {
this.Firstname = firstname;
}
}
Run Code Online (Sandbox Code Playgroud)
标记
<table>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<tr><td><%= FirstnameColumn %></td></tr>
</HeaderTemplate>
<ItemTemplate>
<tr><td><%# Eval("Firstname") %></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>
Run Code Online (Sandbox Code Playgroud)
您可以将表标题移动到 ItemTemplate 中,如下所示:
<ItemTemplate>
<asp:Panel runat="server" Visible='<%# Container.DisplayIndex == 0 %>'>
<tr>
<th><%# Eval("Forename").HeaderName %></th>
</tr>
</asp:Panel>
<tr>
<td><%# Eval("Forename") %></td>
</tr>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
尽管这有点浪费,因为标题将绑定到每一行(尽管仅显示第一行)。也许使用 <% if (...) %> 而不是面板会更好,但我不知道如何在该上下文中访问 Container.DisplayIndex 。
编辑:
在 .net 4.5 中Container.DisplayIndex不起作用;用。。。来代替Container.ItemIndex。
完整示例:
<ItemTemplate>
<asp:Panel runat="server" Visible='<%# Container.ItemIndex == 0 %>'>
<tr>
<th><%# Eval("Forename").HeaderName %></th>
</tr>
</asp:Panel>
<tr>
<td><%# Eval("Forename") %></td>
</tr>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22541 次 |
| 最近记录: |