如何使gridview中的行以编程方式粗体和常规

时间:2010-01-15 17:08:33

标签: c# gridview

您好我已经在c#outlook中编写了程序,您可以通过数据库以文本格式发送,接收,回复和转发邮件我使用gridview来检索邮件。但新任务是如何将未读消息标记为粗体,并在文本中将消息标记为常规消息。

需要帮助

4 个答案:

答案 0 :(得分:3)

您可以使用。

循环遍历行
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Font = new Font(dataGridView.Font, FontStyle.Bold);
foreach(DataGridViewRow dg_r in myDataGridView.rows) 
{
  dg_r.DefaultCellStyle = style; // sets Row Style to Bold
}

答案 1 :(得分:0)

这可能不是您问题的直接答案,但我认为更好的方法是使用 ListView 。然后,您可以对读取项目使用 DataTemplate ,对未读取的项目使用不同的 DataTemplate 。然后,只需将邮件项目绑定到此列表视图,将导致ListView生成并显示所有项目的UI。这样做的主要优点是UI将虚拟化,这意味着UI项目将仅在需要时生成(当它们滚动到视图中时)并将自动处理,即使您在ListView中有大量项目。

然后,您可以实现 DataTemplateSelector ,以根据邮件项的某些属性在两个DataTemplates之间进行选择。

答案 2 :(得分:0)

我正在使用telerik radgriw for asp.net(我不知道它是否也适用于asp网格)

ItemDataBound上的

(asp网格中的rowdatabound)

protected void Dtg_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        GridDataItem row = (GridDataItem)e.Item;
    if (decimal.Parse(row["UniqueColumnName"].Text) > 0)
    {
        // iterate on cells
        for (int i = 0; i <= 6; i++)
            row.Cells[i].CssClass = "gridCellBoldRed";
    }
}

}

其中gridCellBoldRed是一个CSS calss(在我的例子中是〜/ CSS / Style.css)

.gridCellBoldRed
{
    font-weight:bold;
    color: Red;
}

答案 3 :(得分:0)

对于asp:GridView,这还不够吗?

 yourGrid.DataSource = yourDataTable;
 yourGrid.DataBind();

 foreach (GridViewRow item in yourGrid.Rows)
 {
      if (isRead/Unread condition)
      {
          item.Cells[yourCell].Text = 
          "<b>" + item.Cells[yourCell].Text + "</b>";                   
      }
 }