2014-09-30 91 views
0

我正在使用ASP.NET和SQL。如何在ASP.NET中格式化數據

我在表中有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新手。

向我建議一些工具或鏈接,或者請幫忙編寫代碼。

+0

顯示您迄今爲止所做的,然後我們可以從那裏幫助您。 – hallie 2014-09-30 08:48:02

+0

在網格中使用模板字段並將UI用於UI – 2014-09-30 08:48:59

+0

查看此處[需要將文本以大寫形式保存到數據庫](http://stackoverflow.com/questions/8421917/need-to-save-text-to-database大寫)和[使用LINQ to SQL插入數據到數據庫](http://geekswithblogs.net/dotNETvinz/archive/2010/03/11/inserting-data-to-database-using-linq-to-sql .aspx) – Izzy 2014-09-30 08:51:13

回答

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; 
    } 
} 
+1

謝謝......它的作品......正如我所料! ...我修改這樣的代碼

Date:< asp:文字>

2014-09-30 09:34:02

+0

是的,'DataBinder.Eval'也適用。我只是喜歡用強類型來傳遞屬性名稱,就像'DataBinder.Eval'中的字符串一樣。 – tdragon 2014-09-30 12:01:58