bugfix> c# > 投稿

コレクションをメールの本文に渡す仕事があります。最初の列を強調表示します。現在、私のコードは最初の行を変換しています。 これを変更するにはどうすればよいですか?

System.Text.StringBuilder sb = new System.Text.StringBuilder);
if(InData.Rows.Count > 0)
{
sb.Append("Hi There,<br><br>");
sb.Append("Please find the below mentioned Information. <br><br>");
sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
foreach (System.Data.DataColumn dc in InData.Columns)
{
   sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
   sb.Append(dc.ColumnName);
   sb.Append("</th>");
}
sb.Append("</tr>");
int rowNumber = 1;
foreach (System.Data.DataRow dr in InData.Rows)
{
    if (rowNumber == 1)
    {
   sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px; background-color:yellow;'>");
    }
    else
    {
        sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    }
  foreach (System.Data.DataColumn dc in InData.Columns)
   {
      sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
      sb.Append(dr[dc.ColumnName].ToString());
      sb.Append("</td>");
   }
   sb.Append("</tr>");
   rowNumber ++;
}
sb.Append("</table><br><br>");
sb.Append("Regards,<br>");
sb.Append("Team QueryBot");
}
outEmailHtmlTable = sb.ToString();

回答 1 件
  • 行の背景色が強調表示されます。理想的には、列用です。以下のコードでは、 background-color:yellow; を削除しました  行に追加し、各行の最初の列で強調表示される列に追加します。

    System.Text.StringBuilder sb = new System.Text.StringBuilder;
    if(InData.Rows.Count > 0)
    {
    sb.Append("Hi There,<br><br>");
    sb.Append("Please find the below mentioned Information. <br><br>");
    sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    foreach (System.Data.DataColumn dc in InData.Columns)
    {
       sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
       sb.Append(dc.ColumnName);
       sb.Append("</th>");
    }
    sb.Append("</tr>");
    int rowNumber = 1;
    foreach (System.Data.DataRow dr in InData.Rows)
    {
       sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    int colNumber=1;
      foreach (System.Data.DataColumn dc in InData.Columns)
       {
    if(colNumber==1)
    {
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>");
    }
    else
    {
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    }
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
              sb.Append(dr[dc.ColumnName].ToString());
              sb.Append("</td>");
    colNumber++;
           }
           sb.Append("</tr>");
           rowNumber ++;
        }
        sb.Append("</table><br><br>");
        sb.Append("Regards,<br>");
        sb.Append("Team QueryBot");
        }
        outEmailHtmlTable = sb.ToString();
    
    

    これで問題が解決することを願っています。

    以下は、参考のために確認するために使用したコードです。

    private void button1_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("Hi There,<br><br>");
            sb.Append("Please find the below mentioned Information. <br><br>");
            sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
            sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
            sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
            sb.Append("ID");
            sb.Append("</th>");
            sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
            sb.Append("Name");
            sb.Append("</th>");
            sb.Append("</tr>");
            int rowNumber = 1;
            foreach (Employee dr in Employee.GetEmpList())
            {
                if (rowNumber == 1)
                {
                    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                }
                else
                {
                    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                }
                int col = 1;
                if (col == 1)
                {
                    sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>");
                    sb.Append(dr.Id);
                    sb.Append("</td>");
                }
                col++;
                sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                sb.Append(dr.Name);
                sb.Append("</td>");
                sb.Append("</tr>");
                rowNumber++;
            }
            sb.Append("</table><br><br>");
            sb.Append("Regards,<br>");
            sb.Append("Team QueryBot");
            string stoutEmailHtmlTable = sb.ToString();
        }
    }
    class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public static List<Employee> GetEmpList()
        {
            List<Employee> emp = new List<Employee>();
            emp.Add(new Employee() { Id = 1, Name = "Venkatesh" });
            emp.Add(new Employee() { Id = 2, Name = "Ramesh" });
            return emp;
        }
    }
    
    

    Hi There,<br><br>Please find the below mentioned Information. <br><br><table style='border:1px solid black; border-collapse: collapse;'><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><th style='border:1px solid black; border-collapse: collapse; padding:2px;'>ID</th><th style='border:1px solid black; border-collapse: collapse; padding:2px;'>Name</th></tr><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>1</td><td style='border:1px solid black; border-collapse: collapse; padding:2px;'>Venkatesh</td></tr><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>2</td><td style='border:1px solid black; border-collapse: collapse; padding:2px;'>Ramesh</td></tr></table><br><br>Regards,<br>Team QueryBot
    
    

    HTMLでの出力のスナップショット

あなたの答え