我正在使用Dynamic HTML Table
创建DataTable
来自C#
的数据的标记。我正在使用StringBuilder
对象构建的HTML标记。在编译时,我收到错误“无法将字符串转换为字符串构建器”
代码:
DataTable dt=new DataTable();
dt=GetData();
StringBuilder strDeviceList=new StringBuilder();
strDeviceList = "<table style='width:100%;text-align:center;'>" +
"<tr>" +
"<td> Quote ID</td><td>Device</td><td> Generation</td><td>Condition</td><td>Price</td>" +
"</tr>";
foreach (DataRow row in dt.Rows)
{
strDeviceList.Append("<tr>" +
"<td>" + row["QuoteID"] + "</td><td>" + row["Name"] + "</td><td>" + row["Generation"] + "</td><td>" + row["Condition"] + "</td><td>" + row["Price"] + "</td>" +
"</tr>");
}
strDeviceList.Append("</table>");
有什么想法吗? 帮助感谢!
答案 0 :(得分:3)
更改此行,在您尝试将string
分配给StringBuilder
的代码中,这是编译错误的原因
strDeviceList.Append("<table style='width:100%;text-align:center;'>" +
"<tr>" +
"<td> Quote ID</td><td>Device</td><td> Generation</td><td>Condition</td><td>Price</td>" +
"</tr>");
或更清洁
strDeviceList.Append("<table style='width:100%;text-align:center;'>");
strDeviceList.Append("<tr>");
strDeviceList.Append("<td> Quote ID</td><td>Device</td><td> Generation</td><td>Condition</td><td>Price</td>");
strDeviceList.Append("</tr>");
您可以使用AppendFormat
使用字符串
foreach (DataRow row in dt.Rows)
{
strDeviceList.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td></tr>",row["QuoteID"],row["Name"],row["Generation"],row["Condition"],row["Price"]);
}
答案 1 :(得分:0)
strDeviceList = "...."; //wrong
strDeviceList.AppendLine("...."); //use this
strDeviceList.AppendFormat("<td>{0}</td>", row["Name"]); //even smarter
另一件事是StringBuilder .Append比字符串连接运算符
具有更好的性能//instead of native string concat
string str = "aaa" + "bbb" + "ccc";
//builder is faster when performing multiple string concat
StringBuilder builder = new StringBuilder();
builder.Append("aaa");
builder.Append("bbb");
builder.Append("ccc");
string str = builder.ToString();