附加列表< string>使用c#在asp.net中的datagridview [英] Attach List<string> to datagridview in asp.net using c#
本文介绍了附加列表< string>使用c#在asp.net中的datagridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C#代码:
List< string> listOfWeeks = new List< string>();
C# code :
List<string> listOfWeeks = new List<string>();
dgvWeeklyReport.DataSource = listOfWeeks;
dgvWeeklyReport.DataBind();
dgvWeeklyReport是datagridview
设计:
dgvWeeklyReport is datagridview
Design :
<asp:GridView ID="dgvWeeklyReport" runat="server" CssClass="table table-bordered table-striped"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Weeks" />
<asp:BoundField HeaderText="Total Fee" />
</Columns>
</asp:GridView>
我想要的使用List<>在gridview列中添加周列表。我得到了解决方案,并在这里添加了
I wanted to add list of weeks in a column of gridview using List<>. I got the solution and have added here
推荐答案
DataTable NewTable = new DataTable();
NewTable.Columns.AddRange(new DataColumn [ 3] {new DataColumn(WeekNo,typeof(string)),new DataColumn(Week,typeof(string)),new DataColumn(Amount,typeof(string))});
context = new TMSEntities();
var startOfFirstWeek = startdate.AddDays((1 - (int)(startdate.DayOfWeek)) - 1);
var周=
可数
。范围(0,54)
。选择(i => new
{
weekStart = startOfFirstWeek.AddDays(i * 7)
})
.TakeWhile(x => x.weekStart< = enddate )
。选择(x =>新
{
x.weekStart,
weekFinish = x.weekStart.AddDays(6)
})。选择((x,i)=>新的
{
x.weekStart,
x.weekFinish,
weekNum = i + 1 >
});
List< string> dateinterval = new List< string>();
List< string> amt = new List< string>();
List< string> weekno = new List< string>();
foreach(var item in weeks)
{
DataRow dr = NewTable.NewRow() ;
double weekamt = 0;
string date1,date2;
int count = weeks.Count();
if(item.weekNum == 1)
{
date1 = startdate.ToString();
date2 = item.weekFinish。 ToString();
}
else if(count == item.weekNum)
{
date1 = item.weekStart.ToString();
date2 = enddate.ToString();
}
else
{
date1 = item.weekStart.ToString();
date2 = item.weekFinish.ToString();
}
dateinterval.Add(date1 + - + date2);
DateTime d1 = Convert.ToDateTime(date1);
DateTime d2 = Convert.ToDateTime(date2);
string wname = d1.Date.ToShortDateString()+ - + d2.Date.ToShortDateString();
dr.SetField(1,wname);
var frstday = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(d2);
int wno = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(d2.AddDays(4 - (frstday == 0? 7:frstday)),CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Sunday);
weekno.Add(wno.ToString());
dr.SetField(0,wno.ToString());
var query =(来自FeeCollection in context.tbl_FeeCollection
,其中FeeCollection.Createddatetime> = d1&& ; FeeCollection.Createddatetime< = d2
select(double?)FeeCollection.Amount).Sum()?? 0;
string q = query.ToString();
if(String.IsNullOrWhiteSpace(q))
{
q =0;
}
weekamt = Convert.ToDouble(q);
amt.Add(weekamt.ToString());
dr.SetField(2,weekamt。 ToString());
NewTable。 Rows.Add(dr);
}
返回NewTable;
将此NewTable作为数据源添加到gridview。
DataTable NewTable = new DataTable();
NewTable.Columns.AddRange(new DataColumn[3] { new DataColumn("WeekNo", typeof(string)), new DataColumn("Week", typeof(string)), new DataColumn("Amount", typeof(string)) });
context = new TMSEntities();
var startOfFirstWeek = startdate.AddDays((1 - (int)(startdate.DayOfWeek)) - 1);
var weeks =
Enumerable
.Range(0, 54)
.Select(i => new
{
weekStart = startOfFirstWeek.AddDays(i * 7)
})
.TakeWhile(x => x.weekStart <= enddate)
.Select(x => new
{
x.weekStart,
weekFinish = x.weekStart.AddDays(6)
}).Select((x, i) => new
{
x.weekStart,
x.weekFinish,
weekNum = i + 1
});
List<string> dateinterval = new List<string>();
List<string> amt = new List<string>();
List<string> weekno = new List<string>();
foreach (var item in weeks)
{
DataRow dr = NewTable.NewRow();
double weekamt = 0;
string date1, date2;
int count = weeks.Count();
if (item.weekNum == 1)
{
date1 = startdate.ToString();
date2 = item.weekFinish.ToString();
}
else if (count == item.weekNum)
{
date1 = item.weekStart.ToString();
date2 = enddate.ToString();
}
else
{
date1 = item.weekStart.ToString();
date2 = item.weekFinish.ToString();
}
dateinterval.Add(date1 + "-" + date2);
DateTime d1 = Convert.ToDateTime(date1);
DateTime d2 = Convert.ToDateTime(date2);
string wname = d1.Date.ToShortDateString() + " - " + d2.Date.ToShortDateString();
dr.SetField(1, wname);
var frstday = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(d2);
int wno = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(d2.AddDays(4 - (frstday == 0 ? 7 : frstday)), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday);
weekno.Add(wno.ToString());
dr.SetField(0, wno.ToString());
var query = (from FeeCollection in context.tbl_FeeCollection
where FeeCollection.Createddatetime >=d1 && FeeCollection.Createddatetime <= d2
select (double?)FeeCollection.Amount).Sum()??0;
string q = query.ToString();
if (String.IsNullOrWhiteSpace(q))
{
q = "0";
}
weekamt = Convert.ToDouble(q);
amt.Add(weekamt.ToString());
dr.SetField(2, weekamt.ToString());
NewTable.Rows.Add(dr);
}
return NewTable;
Add this NewTable as a DataSource to gridview.
这篇关于附加列表< string>使用c#在asp.net中的datagridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文