有没有一种方法可以将修整格式应用于DataSet中的整个列?例如,下面是从数据集中的结果:数据集 - 应用整个列的条件格式?
ID FullName Number
1 Testing 0
2 More Test [null]
3 Last Test 1
我希望能够格式化Number
列,如果是0
然后我会显示空字符串,如果它是null
那么我会显示NR
,如果是1
,那么我会显示T
。
谢谢。
有没有一种方法可以将修整格式应用于DataSet中的整个列?例如,下面是从数据集中的结果:数据集 - 应用整个列的条件格式?
ID FullName Number
1 Testing 0
2 More Test [null]
3 Last Test 1
我希望能够格式化Number
列,如果是0
然后我会显示空字符串,如果它是null
那么我会显示NR
,如果是1
,那么我会显示T
。
谢谢。
我已经通过DataSet循环使其工作。不知道它是否是最好的方式,但:
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 "";
}
这一切都取决于你如何使用DataSet/DataTable - 这是一个GridView或FormView的DataSource,你只是想提供不同的数据绑定输出数据?或者您是否想要进入并实际更改DataSet中的数据?
如果是前者,这里有一个如何有数据绑定在一个函数执行提供不同的值(见Fill GridViewColumn with c# code的VB.NET例子)一个基本的GridView的例子:
<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出于某种原因,这是没用的。如果有人遇到它,我会在这里留下答案。
我想改变返回的数据导出到一个文件,不绑定到gridview或任何东西。谢谢。 – Saxman 2011-05-17 17:11:51
然后你应该改变数据_when_你导出到文件。 – 2011-05-18 23:17:41
DataSets没有格式。他们只是包含数据。如果您需要“格式化”,那么您使用的是错误的工具。
我没有格式化DataSet。我正在格式化来自数据集的数据。 – Saxman 2011-05-18 23:11:15
这不是你的问题所说的:“是否有一种方法可以将修整格式应用于DataSet中的整个列?” – 2011-05-18 23:16:59
我其实和约翰在这一点上有点类似,但是考虑到你的局限性,你可能没有别的选择。通常,格式和表示与数据是分开的,但由于您要导出电子表格,除非您想手动编辑该电子表格,否则必须将其输入到DataSet中。 – 2011-05-19 12:42:18
你对输出数据究竟做什么?多一点背景将有助于确定一个好的解决方案。有很多不同的方法来完成这项任务。 – 2011-05-17 16:07:43
您好Steve,我将这些数据导出到text/excel文件。谢谢。 – Saxman 2011-05-17 16:14:33
@Saxman - 你用什么来导出数据,它支持任何格式的导出? – 2011-05-17 17:24:30