【问题标题】:Multiple Outputs From One Set of Labels一组标签的多个输出
【发布时间】:2015-05-19 13:22:05
【问题描述】:

我正在使用 SQL 数据库在 ASP.NET Web 窗体中构建网站。该数据库包含一个包含 571 个数据条目的表。

输出

源代码

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                using (SqlCommand command = new SqlCommand("SELECT Id, Name, Townland, Near, Status, Built FROM Houses ORDER BY Name DESC", connection))
                {
                    connection.Open();
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                                lblId.Text = reader[0].ToString();
                                lblName.Text = reader[1].ToString();
                                lblTown.Text = reader[2].ToString();
                                lblNear.Text = reader[3].ToString();
                                lblStatus.Text = reader[4].ToString();
                                lblBuilt.Text = reader[5].ToString();
                        }
                    }
                }
            }

数据库

我想显示所有 571 栋房屋来执行此操作,我需要为每栋房屋设置一组标签,但有没有办法让我拥有一组类似上述代码的标签来输出所有 571 个条目而无需重复代码。

【问题讨论】:

    标签: sql asp.net visual-studio webforms labels


    【解决方案1】:

    尝试使用中继器。这是一个特殊的控件,它只允许定义一次内部项目布局,然后绑定一些数据以呈现多个看起来一致但包含不同数据的块。

    Repeater 具有 ItemTempalte 属性,它允许您包装所有要查看的标签。

     <asp:Repeater ID="rptData" runat="server">
       <ItemTemplate>
         <asp:Label runat="server" Text='<%# Eval("Id") %>'></asp:Label>
         <asp:Label runat="server" Text='<%# Eval("Name") %>'></asp:Label>
       </ItemTemplate>
    </asp:Repeater>
    

    然后只需将数据库行加载到转发器中:

    rptData.DataSource = command.ExecuteReader();
    rptData.DataBind();
    

    最后,在 HTML 布局中指定标签到各个列的映射 - 比如

    <asp:Label runat="server" Text='<%# Eval("Name") %>'></asp:Label>
    

    <asp:Label runat="server" Text='<%# Eval("Townland") %>'></asp:Label>
    

    等等

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多