c# - 使用表优化中继器的 asp.net C# 代码

标签 c# asp.net repeater

在 aspx 上:

<table>
<tr>
<asp:Repeater ID="rptHeader" runat="server">
    <ItemTemplate>
        <th><%#Eval("Category")%></th>
    </ItemTemplate>
</asp:Repeater>
</tr>
<tr>
<asp:Repeater ID="rptContents" runat="server">
    <ItemTemplate>
        <td valign="top">
            <%#Eval("Content")%>
        </td>
    </ItemTemplate>
</asp:Repeater>
</tr>
</table>

在隐藏代码上:

protected void Page_Load(object sender, EventArgs e) 
{
    rptHeader.DataSource = DataSource;
    rptHeader.DataBind();
    rptContentBlocks.DataSource = DataSource;
    rptContentBlocks.DataBind();
}

这里的问题是,我们可以只使用一个中继器,而不是使用两个中继器吗? 我们实际上需要使用不同的表格行将标题与内容分开......

编辑:将 rptHeader 的 ItemTemplate 的 html 元素从 <td> 更改为至<th>更清楚一点。 :-)

最佳答案

在我看来,如果没有中继器黑客攻击,这是不可能的。无论如何,有一种相当不规则的方法可能有效。您还可以使用两个 foreach 语句而不是重复器。

代码

protected string[] headers = { "A", "B", "C", "D" };
protected string[] contents = { "Alpha", "Beta", "Counter", "Door" };

//string[] headers = { "A", "B", "C", "D" };
//string[] contents = { "Alpha", "Beta", "Counter", "Door" };

//DataList1.RepeatColumns = headers.Length;
//DataList1.DataSource = headers.Concat(contents);
//DataList1.DataBind();

Html 标记

<table>
    <tr>
        <%foreach (string item in headers)
          { %>
          <th><%= item %></th>
        <% } %>
    </tr>
    <tr>
        <%foreach (string item in contents)
          { %>
          <td><%= item %></td>
        <% } %>
    </tr>
</table>
<!--
    <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal">
        <ItemTemplate>
            <%# Container.DataItem %>
        </ItemTemplate>
    </asp:DataList>
-->

关于c# - 使用表优化中继器的 asp.net C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2011683/

相关文章:

asp.net - 图片下拉列表

c# - 有什么方法可以将以编程方式创建的 UIElement 保存在图像文件中吗?

c# - 如果 ASP.NET 5 应用程序在 Ubuntu 上运行,它可以与 MS SQL Server 通信吗?

c# - 如何在 ASP.NET DataRepeater 控件中执行条件逻辑?

asp.net - 如何在Visual Studio 2013中允许父路径?

ASP.NET Repeater 中的 javascript 函数

c# - Unity3D 中 GC 和卸载 Assets 的顺序

c# - 尽管答案是正确的,但为什么我的代码输出 "Incorrect"?

ASP.NET 中继器内的 HTML 单选按钮 C#

javascript - Protractor :从原型(prototype)返回中继器计数