数据集 - 应用整个列的条件格式
本文关键字:条件 格式 应用 数据集 | 更新日期: 2023-09-27 17:56:48
有没有办法将条件格式应用于数据集中的整个列?例如,下面是数据集的结果:
ID FullName Number
1 Testing 0
2 More Test [null]
3 Last Test 1
我希望能够格式化Number
列,如果它是0
那么我将显示空字符串,如果它是null
那么我将显示NR
,如果它是1
,那么我将显示T
。
谢谢。
这完全取决于您如何使用 DataSet/DataTable - 这是 GridView 还是 FormView 的数据源,并且您只想在数据绑定上提供不同的输出数据? 或者您想进入并实际更改数据集中存在的数据?
如果是前者,下面是一个基本的 GridView 示例,说明如何在数据绑定期间执行函数以提供不同的值(有关 VB.NET 示例,请参阅使用 c# 代码填充 GridViewColumn):
<asp:GridView ID="gvExample" runat="server" DataSourceID="dsExample">
<Columns>
<asp:TemplateField HeaderText="Header Text">
<ItemTemplate>
<asp:Literal ID="litFunctionResult" runat="server"
Text='<%# DoMyFunction(Eval("DataSourceField1") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在你的代码隐藏中,添加如下内容:
Protected String DoMyFunction(Object field)
{
int retValue;
if (field == System.DBNull.Value)
retValue = "NR";
else if (Convert.ToInt32(field) == 0)
retValue = "";
else if (Convert.ToInt32(field) == 1)
retValue = "T";
else
retValue = "uhoh?";
return retValue;
}
编辑:随着您将其导出到Excel的事实的介绍...这可能不是特别方便。 另外,您没有指定 ASP.NET,因此...除非出于某种原因想要创建并数据绑定 GridView,否则这是无用的。 我会把答案留在这里,以防有人碰到它。
我已经遍历了数据集以使其工作。不确定这是否是最好的方法:
for(int i = 0; i< ds.Tables[0].Rows.Count; i++)
{
for(int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
var columnName = ds.Tables[0].Columns[j].ColumnName;
if(columnName == "Number")
{
ds.Tables[0].Rows[i][columnName] = SpecialFormat(columnName, ds.Tables[0].Rows[i]));
}
}
}
private string SpecialFormat(string column, DataRow dataRow)
{
string value = dataRow[column].ToString();
if (!string.IsNullOrEmpty(value))
{
if (value == "0")
return "";
if (value == "1")
return "T";
}
return "";
}
数据集
没有格式。它们只包含数据。如果您需要"格式化"它,那么您使用了错误的工具。