我正在使用Visual Studio 2008(Asp.net(c#))和SQl Server 2005
我有一个数据表(“dtReportList”)从数据库查询生成,然后我通过gridview显示数据表。
dtReportList = GetReportList(UserId); //从数据库中获取数据
GridView1.DataSource = dtReportList;
GridView1.DataBind();
datatable的输出数据为::
ReportId ReportName CreatedDate
1 DummyReport1 21/08/2009
2 DummyReport2 21/08/2009
3 DummyReport4 21/08/2009
我想在修改DataTable之前将其分配给Grid的DataSource。 我想修改每一行的ReportName数据。
我无法修改GetReportList方法因为使用频繁,所以我唯一的机会是在使用之前修改DataTable。
有可能吗? 我该怎么办?
我在考虑做这样的事情?
dtReportList = GetReportList(UserId); //get data from database
foreach(DataRow report in dtReportList.Rows)
{
Guid reportId = new Guid(report["ReportId"].ToString());
string reportTitle = GetReportTitle(conn, reportId, UserId,
GetReportLanguage(reportId));
report["ReportName"] = reportTitle;
}
GridView1.DataSource = dtReportList;
GridView1.DataBind();
再次感谢您的帮助。
答案 0 :(得分:1)
你的代码会正常工作,有什么问题?另一种选择是写extension method并在需要时使用它,像这样
public static class ReportsExtensions
{
public static GetChangedList(this ReportsTable tbl)
{
foreach(DataRow report in tbl)
{
Guid reportId = new Guid(report["ReportId"].ToString());
string reportTitle = GetReportTitle(conn, reportId, UserId, GetReportLanguage(reportId));
report["ReportName"] = reportTitle;
}
}
}
GridView1.DataSource = dtReportList.GetChangedList();
GridView1.DataBind();