如何根据颜色值向html表添加颜色?

时间:2019-12-07 14:34:09

标签: c# sql .net database

有人可以帮我现在不做什么。我在这里很新。 如果要根据该值将“服务器状态”设置为“在线”(绿色)和“离线”(红色),我想更改表中的颜色。

任何帮助将不胜感激!

谢谢。

        if (!Page.IsPostBack)
        {
        string maincon =                ConfigurationManager.ConnectionStrings["MeineVerbindung"].ConnectionString;
        //Connection with Server 
        SqlConnection AzureDB = new SqlConnection(maincon);
        string sqlquery = "SELECT UPPER(Computername) as Customername, (Customername) as         Computername, case when [online] = 1 then 'ONLINE' else 'OFFLINE' end Online FROM[XXX].[XXXXX] where         enddate = '' order by Customername,Computername";
        SqlCommand sqlcomm = new SqlCommand(sqlquery, AzureDB);
        //Open the Connction
        AzureDB.Open();
        SqlDataAdapter sda = new SqlDataAdapter(sqlcomm);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        StringBuilder sb = new StringBuilder();
        sb.Append("<center>");
        sb.Append("<br>");
        sb.Append("</hr>");
        //Table
        sb.Append("<table class='tabelle'>");
        sb.Append("<tr>");
        //Shows all in a Table
        foreach (DataColumn dc in dt.Columns)
        {
        sb.Append("<th style='font-size: 18px; background: #1abc9c; color: white;'>");
        sb.Append(dc.ColumnName.ToUpper());
        sb.Append("</th>");
        }
        sb.Append("</tr>");
        foreach (DataRow dr in dt.Rows)
        {

        sb.Append("<tr class='fathi' style='font-size: 14px;'>");
        foreach (DataColumn dc in dt.Columns)
        {
        sb.Append("<th>");
        sb.Append(dr[dc.ColumnName].ToString());
        sb.Append("</th>");
        }
        sb.Append("</tr>");
        }
        sb.Append("</table>");
        sb.Append("</center>");
        Panel1.Controls.Add(new Label { Text = sb.ToString() });
        AzureDB.Close();
        }
        ```


1 个答案:

答案 0 :(得分:0)

我建议使用asp:GridView

index.aspx

<asp:GridView ID="GvServer" runat="server" OnRowDataBound="GvServer_RowDataBound" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"> </asp:GridView>

index.aspx.cs

 ////In your case, get it from SQL and remove all StringBuilder and html table code

            `DataTable dt = GetData();
             GvServer.DataSource = dt;
             GvServer.DataBind();

    DataTable GetData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Server");
        dt.Columns.Add("Status");

        DataRow row = dt.NewRow();
        row["Server"] = "Server 1";
        row["Status"] = "Offline";
        dt.Rows.Add(row);

        DataRow row2 = dt.NewRow();
        row2["Server"] = "Server 2";
        row2["Status"] = "Online";
        dt.Rows.Add(row2);

        DataRow row3 = dt.NewRow();
        row3["Server"] = "Server 3";
        row3["Status"] = "Online";
        dt.Rows.Add(row3);

        DataRow row4 = dt.NewRow();
        row4["Server"] = "Server 4";
        row4["Status"] = "Offline";
        dt.Rows.Add(row4);

        return dt;
    }

    protected void GvServer_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (Convert.ToString(e.Row.Cells[1].Text) == "Online")
        {
            e.Row.BackColor = System.Drawing.Color.Green;
        }
        else if (Convert.ToString(e.Row.Cells[1].Text) == "Offline")
        {
            e.Row.BackColor = System.Drawing.Color.Red;
        }

}`


如果您仍然想要HTML表格,请使用此 index2.aspx

<asp:Literal ID="mytable" runat="server" />

index2.asp.cs

`避免UseHtmlTable()         {             DataTable dt = GetData();

        StringBuilder sb = new StringBuilder();
        //Table start.
        sb.Append("<table cellpadding='5' cellspacing='0' style='border: 1px solid #ccc;font-size: 9pt;font-family:Arial'>");

        //Adding HeaderRow.
        sb.Append("<tr>");
        foreach (DataColumn column in dt.Columns)
        {
            sb.Append("<th style='background-color: #B8DBFD;border: 1px solid #ccc'>" + column.ColumnName + "</th>");
        }
        sb.Append("</tr>");

        //Adding DataRow.
        foreach (DataRow row in dt.Rows)
        {
            if (row["Status"].ToString() == "Online")
            {
                sb.Append("<tr style='background-color: #33cc33;'>");
            }
            else if (row["Status"].ToString() == "Offline")
            {
                sb.Append("<tr style='background-color: #ff0000;'>");
            }

            foreach (DataColumn column in dt.Columns)
            {
                sb.Append("<td style='width:100px;border: 1px solid #ccc'>" + row[column.ColumnName].ToString() + "</td>");
            }
            sb.Append("</tr>");
        }

        //Table end.
        sb.Append("</table>");
        mytable.Text = sb.ToString();
    }`