我有一个gridview,显示自定义查询的结果。列数未知,并且绑定的DataTable是否包含布尔列是未知的。包含布尔值的列标题也是未知的。
事先不知道这些信息,有没有办法可以用简单的是/否替换复选框?
对于预定义列,这看起来非常简单,但在这种情况下并非如此。
答案 0 :(得分:0)
我在发布问题后不久就找到了解决方案。我最终做的是:
以下是如何完成的代码:
DataTable Clone = ResultsTable.Clone();
for (int i = 0; i < Clone.Columns.Count; i++)
{
Clone.Columns[i].DataType = typeof(string);
}
foreach (DataRow row in ResultsTable.Rows)
{
DataRow r = null;
object[] ItemArray = row.ItemArray;
for (int i = 0; i< ItemArray.Length; i++)
{
if (ItemArray[i].ToString() == "True") ItemArray[i] = "Yes";
if (ItemArray[i].ToString() == "False") ItemArray[i] = "No";
}
r = Clone.NewRow();
r.ItemArray = ItemArray;
Clone.Rows.Add(r);
}
此概念也应适用于类似的DataTable文本转换。