有人可以帮我现在不做什么。我在这里很新。 如果要根据该值将“服务器状态”设置为“在线”(绿色)和“离线”(红色),我想更改表中的颜色。
任何帮助将不胜感激!
谢谢。
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();
}
```
答案 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();
}`