我有一个存储过程,我使用该数据用Datatable填充表格,如下所示:
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<td>");
html.Append("<a target='_blank' href= " + "'" + row[dt.Columns["subCategoryURL"]] + "'" + " >");
html.Append(row[column.ColumnName]);
html.Append("</a>");
html.Append("</td>")
}
html.Append("</tr>");
}
我目前有SP返回2列信息:subCategoryName,subCategoryDescription。我想添加第3列subCategoryURL,它将作为链接的标记,如下所示:
<td>
<a target="_blank" href="#">Dealer Support</a>
</td>
<td>
<a target="_blank" href="#">Support information for dealer management</a>
</td>
如何专门针对每个列定位以构建表?我试图使用html.Append(row[dt.Columns["subCategoryURL"]]);
但它没有返回所需的结果。我接下来该怎么办?
答案 0 :(得分:1)
要从对应于特定列(columnName)的DataRow(datarow)获取特定类型(T)的项目,可以使用以下内容。
dataRow.Field<T>(columnName)
所以,
string url = row.Field<string>(subCategoryURL)
可能会有效。
请记住,T必须与存储在DataRow的指定列中的数据类型相同。如果subCatergoryURL指向一行双精度数,则上面会抛出InvalidCastException。
见here。
答案 1 :(得分:1)
子类别URL最终在表格中......我将如何将其他2定位到循环中
同样的方式,即:
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
html.Append("<td>");
html.Append("<a target='_blank' href= " + "'" + row["subCategoryURL"].ToString() + "'" + " >");
html.Append(row["subCategoryName"].ToString());
html.Append("</a>");
html.Append("</td>");
html.Append("<td>");
html.Append(row["subCategoryDescription"].ToString());
html.Append("</td>");
html.Append("</tr>");
}
row [“ subCategoryName ”]会为您提供当前行“ subCategoryName ”列的值。