如何在ASP.NET中格式化数据

时间:2014-09-30 08:45:52

标签: asp.net

我正在使用ASP.NET和SQL。

我在表格中有3列。我应该以这样的方式填充数据:

Date: 2014-09-22
Description1: xyz (this should be bold)
Description2 pqrs (normal paragraph)
在水平标记之后

应出现另一个数据


Date: 2013-09-22 
Description1: abcd (this should be bold)
Description2 qwe (normal paragraph)

我可以在GridView中填充数据,但我不知道如何以这种方式格式化数据。我是ASP.NET的新手。

建议我使用一些工具或链接,或者在编写代码时提供帮助。

1 个答案:

答案 0 :(得分:0)

在你的aspx / ascx中你需要使用asp:Repeater控件,如下所示:

    <asp:Repeater runat="server">
        <ItemTemplate>
            <p>Date: <asp:Literal runat="server" ID="litDate"></asp:Literal></p>
            <p>Description 1: <strong><asp:Literal runat="server" ID="litDesc1"></asp:Literal></strong></p>
            <p>Description 2: <asp:Literal runat="server" ID="litDesc2"></asp:Literal></p>
        </ItemTemplate>
        <SeparatorTemplate>
            <hr />
        </SeparatorTemplate>
    </asp:Repeater>

在代码隐藏中,您应该将一组对象绑定到此Repeater,并处理OnDataBinding事件,您应该为asp:Literal控件分配正确的值:

class DataItem
{
    public DateTime Date { get; set; }

    public string Desc1 { get; set; }

    public string Desc2 { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    rptData.DataSource = new[]
        {
            new DataItem { Date = new DateTime(2013, 9, 30), Desc1 = "Test Desc 1", Desc2 = "Test Desc 2" },
            new DataItem { Date = new DateTime(2013, 9, 30), Desc1 = "Test Desc 3", Desc2 = "Test Desc 4" } 
        };

    rptData.ItemDataBound += OnItemDataBind;
    rptData.DataBind();
}

protected void OnItemDataBind(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        var data = e.Item.DataItem as DataItem;

        var dateLiteral = e.Item.FindControl("litDate") as Literal;
        dateLiteral.Text = data.Date.ToString("yyyy-MM-dd");

        var desc1Literal = e.Item.FindControl("litDesc1") as Literal;
        desc1Literal.Text = data.Desc1;

        var desc2Literal = e.Item.FindControl("litDesc2") as Literal;
        desc2Literal.Text = data.Desc2;
    }
}