【问题标题】:how to use two List<> as datasource of a repeater at the same time asp.netasp.net 如何同时使用两个 List<> 作为中继器的数据源
【发布时间】:2015-07-22 16:57:36
【问题描述】:

我正在尝试使用中继器显示两个不同列表 的数据。二级列表必须显示在中继器内部表格的列中。 List 的项目数量相同。如果你们给我解决方案或其他解决方法,我会很高兴。

【问题讨论】:

  • 我不确定我是否理解。您是说您有 2 个列表,并且想要一个包含两列的表格,每个列表对应于中继器中显示的每个列表?
  • 发布一些关于列表定义的代码以及你对转发器有什么要求?
  • 为 2 列亚当 2 个不同的列表。
  • @Berzingen 您有机会在下面查看/尝试我的答案吗?如果是这样,您有什么问题吗?
  • 谢谢你,但你可能不明白。我解决了使用 LINQ 连接创建表并将列表转换为数据表的问题

标签: asp.net list datasource eval repeater


【解决方案1】:

您可以像这样将 2 个字符串列表连接成一个对象列表:

创建一个具有 2 个字符串作为属性的新类(如果需要,可以在当前页面代码隐藏文件中,但应该在该页面的类声明之外 - 例如,如果页面类在末尾下方):

class TwoStrings
{
    public string String1 { get; set; }
    public string String2 { get; set; }
}

这里是一些示例代码,用于获取 2 个字符串列表(就像您目前拥有的那样)并将它们组合到 TwoStrings 类的 List 中。

List<string> list1 = new List<string>();
List<string> list2 = new List<string>();

//Some sample data
list1.Add("1");
list2.Add("one");
list1.Add("2");
list2.Add("two");

List<TwoStrings> TwoStringList = new List<TwoStrings>();

//This is assumimg both lists are always the same length
for (int index = 0; index <= list1.Count - 1; index++) {
    TwoStrings ts = new TwoStrings();
    ts.String1 = list1(index);
    ts.String2 = list2(index);
    TwoStringList.Add(ts);
}

Repeater1.DataSource = TwoStringList;
Repeater1.DataBind();

这是中继器的外观示例:

<asp:Repeater ID="Repeater1" runat="server" >
    <ItemTemplate>
        <tr>
            <td>
                <asp:Label runat="server" Text='<%# Eval("String1")%>' />
            </td>
            <td >
                <asp:Label runat="server" Text='<%# Eval("String2")%>' />
            </td>
        </tr>
        <br />
    </ItemTemplate>
</asp:Repeater>

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2022-01-15
    • 2011-02-08
    • 1970-01-01
    相关资源
    最近更新 更多