您好我已经在c#outlook中编写了程序,您可以通过数据库以文本格式发送,接收,回复和转发邮件我使用gridview来检索邮件。但新任务是如何将未读消息标记为粗体,并在文本中将消息标记为常规消息。
需要帮助
答案 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>";
}
}