我对LINQ查询中的日期有疑问,该查询绑定到gridview。这是我正在使用的代码,没什么特别的,但问题是我无法格式化gridview中的日期(p.aktivnost.aktivnost.datum是日期),格式为“dd.MM.yyyy”。而它被显示为“dd.MMM.yyyy.0:00:00”,我想避免。
我试图寻找解决方案,但我找到的解决方案都没有用。唯一能让我获得部分成功的解决方案是当我使用“date = p.aktivnost.aktivnost_datum.Value.Day”时,但我无法添加其他值(月份和年份)。
令我难过,下面的代码是一个不起作用的想法。
日期= p.aktivnost.aktivnost_datum.Value.Day +“。” + p.aktivnost.aktivnost_datum.Value.month +“。” + p.aktivnost.aktivnost_datum.Value.Day
现在,用于绑定数据的代码。 Gridview在页面加载时不包含任何列。
var predavaci = from p in db.predavacs
where p.osoba_id == idOsoba
orderby p.osoba.osoba_prezime
select new { p.aktivnost.tema.tema_naziv, p.aktivnost.ciklu.ciklus_naziv, p.aktivnost.podciklu.naziv_podciklus, p.aktivnost.aktivnost_datum, p.aktivnost.mjesto.mjesto_naziv, p.aktivnost.ciljana_grupa.ciljana_grupa_naziv };
gvIzvjestaj.DataSource = predavaci;
DataBind();
gvIzvjestaj.HeaderRow.Cells[0].Text = "Naziv aktivnosti";
gvIzvjestaj.HeaderRow.Cells[1].Text = "Ciklus";
gvIzvjestaj.HeaderRow.Cells[2].Text = "Podciklus";
gvIzvjestaj.HeaderRow.Cells[3].Text = "Datum";
gvIzvjestaj.HeaderRow.Cells[4].Text = "Mjesto";
gvIzvjestaj.HeaderRow.Cells[5].Text = "Ciljna grupa";}
解决方案:
gvIzvjestaj.DataSource = predavaci.ToList().Select(p => new { p.tema_naziv, p.ciklus_naziv, p.naziv_podciklus, datum = p.aktivnost_datum.Value.Day + "." + p.aktivnost_datum.Value.Month + "." + p.aktivnost_datum.Value.Year + ".",p.mjesto_naziv,p.ciljana_grupa_naziv});
答案 0 :(得分:2)
在你的select ... new
中写一下:
p.aktivnost.aktivnost_datum.ToString("dd.MM.yyyy")
修改强>
var predavaci = (from p in db.predavacs
where p.osoba_id == idOsoba
orderby p.osoba.osoba_prezime).ToList().Select(p =>
new { p.aktivnost.tema.tema_naziv, p.aktivnost.ciklu.ciklus_naziv, p.aktivnost.podciklu.naziv_podciklus, p.aktivnost.aktivnost_datum, p.aktivnost.mjesto.mjesto_naziv, p.aktivnost.ciljana_grupa.ciljana_grupa_naziv } );
答案 1 :(得分:1)
在你的Gridview显示代码中执行类似这样的操作
<asp:BoundField DataField="p.aktivnost.aktivnost.datum"
DataFormatString="{0:MM-dd-yyyy}" HtmlEncode="false"
HeaderText="p.aktivnost.aktivnost.datum" />
修改
试试这个:
var predavaci = from p in db.predavacs
where p.osoba_id == idOsoba
orderby p.osoba.osoba_prezime
select new
{
p.aktivnost.tema.tema_naziv,
p.aktivnost.ciklu.ciklus_naziv,
p.aktivnost.podciklu.naziv_podciklus,
aktivnost_datum = new {
string.Format("{0}.{1}.{2}",
p.aktivnost.aktivnost_datum.Day,
p.aktivnost.aktivnost_datum.Month,
p.aktivnost.aktivnost_datum.Year)
},
p.aktivnost.mjesto.mjesto_naziv,
p.aktivnost.ciljana_grupa.ciljana_grupa_naziv
};
或者像在另一个答案中提到的那样,你可以像在内存中那样正常地编辑它。
gvIzvjestaj.DataSource =
predavaci.ToList().Select(q =>
new {
q.aktivnost.tema.tema_naziv,
q.aktivnost.ciklu.ciklus_naziv,
q.aktivnost.podciklu.naziv_podciklus,
q.aktivnost.aktivnost_datum.ToString("dd.MM.yyyy"),
q.aktivnost.mjesto.mjesto_naziv,
q.aktivnost.ciljana_grupa.ciljana_grupa_naziv
});