【发布时间】:2020-03-04 16:32:47
【问题描述】:
我有 10 篇文章的列表,在页面加载事件中显示以下 Linq to SQL 查询:
if (!Page.IsPostBack)
{
MyDataClassesDataContext db = new MyDataClassesDataContext();
var pressRelease = from pr in db.PressReleases
orderby pr.DatePublished ascending
where pr.Published == true
select pr;
int i = 0;
foreach (var release in pressRelease)
{
Literal literal = new Literal();
literal.Text = "<div class='row no-gutters pb-5'><div class='col-12'><h2>" +
release.Title + "</h2>" + Server.HtmlDecode(release.Content) + "</h2>" +
"<a href='Press-Release.aspx?id=" + release.Id +
"'><b>Read article...</b></a></div></div>";
pnlPressReleaases.Controls.Add(literal);
}
}
在我的网页上,我有一个包含以下值的下拉列表,并且自动回发设置为 true。
<asp:DropDownList ID="ddlPressSortBy" AutoPostBack="True" runat="server" OnSelectedIndexChanged="ddlPressSortBy_SelectedIndexChanged">
<asp:ListItem Value="pr.DatePublished descending">Date Published Desc</asp:ListItem>
<asp:ListItem Selected="True" Value="pr.DatePublished ascending">Date Published Asc</asp:ListItem>
<asp:ListItem Value="pr.Title ascending">Alphabetical</asp:ListItem>
</asp:DropDownList>
一旦我改变了下拉列表的值,返回的数据在对应的select语句上没有orderby。这是我的 OnSelectIndexChanged 事件代码:
protected void ddlPressSortBy_SelectedIndexChanged(object sender, EventArgs e)
{
MyDataClassesDataContext db = new MyDataClassesDataContext();
var pressRelease = from pr in db.PressReleases
orderby ddlPressSortBy.SelectedValue
where pr.Published == true
select pr;
foreach (var release in pressRelease)
{
Literal literal = new Literal();
literal.Text = "<div class='row no-gutters pb-5'><div class='col-12'><h2>" +
release.Title + "</h2>" + Server.HtmlDecode(release.Content) + "</h2>" + "<a href='Press-Release.aspx?id=" + release.Id + "'><b>Read article...</b></a></div></div>";
pnlPressReleaases.Controls.Add(literal);
}
}
我有点不确定为什么它没有与 orderby 一起触发。
任何帮助将不胜感激。
谢谢 抢
【问题讨论】:
-
我想你会在这里找到答案:stackoverflow.com/questions/31955025/…
-
ddlPressSortBy中的值是什么,有很多还是只有 1 或 2 - 如果只是几个值,会更容易
标签: c# linq-to-sql