附加列表< string>使用c#在asp.net中的datagridview [英] Attach List<string> to datagridview in asp.net using c#

查看:54
本文介绍了附加列表< 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.


这篇关于附加列表&lt; string&gt;使用c#在asp.net中的datagridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆