asp.net gridview-paging und das Sortieren mit linq to sql benutzerdefinierte linq-Anweisung
Ok, ich weiß, das kann wirklich schwer sein, aber ich habe Probleme bei der Suche keine Infos. Ich habe ein gridview-Steuerelement auf die Seite, ich bin die Befüllung mit Daten basierend auf einem vom Benutzer ausgewählten Zeitraum(eine dropdown-Liste). Wenn der Benutzer auf die Schaltfläche klickt, fülle ich die gridview und anzeigen. Dies alles geschieht mithilfe von Linq to Sql. Ich muss impliment paging und Sortieren sowie. Hilfe BITTE!!! Unten ist mein Knopf-Klick-Ereignis... ich bin offen für alle Vorschläge, um diese arbeiten
protected void btnGenerate_Click(object sender, EventArgs e)
{
int dateRange =0;
if (rbDateList.Checked)
{
switch (ddlDateRange.SelectedIndex)
{
case 0:
dateRange = 30;
break;
case 1:
dateRange = 60;
break;
case 2:
dateRange = 90;
break;
default:
dateRange = 30;
break;
}
}
GYTDataContext gt = new GYTDataContext();
var productList = from o in gt.PurchaseOrderDetails
join p in gt.Products on o.ProductId equals p.ProductId
join h in gt.PurchaseOrderHeaders on o.PurchaseOrderId equals h.PurchaseOrderId
where h.OrderDate>DateTime.Now.AddDays(-dateRange)
group o by o.ProductId into orderedItems
select new
{
orderedItems.Key,
QuantityOrdered = orderedItems.Sum(s => s.OrderQuantity)
};
var totalOrderInfo = from p in productList
join prod in gt.Products
on p.Key equals prod.ProductId
select new
{
prod.Reference,
UnitPrice = prod.Price,
prod.ManufacturerProductId,
p.QuantityOrdered,
TotalCost = prod.Price * Convert.ToInt32(p.QuantityOrdered)
};
gvOrderReport.DataSource = totalOrderInfo;
gvOrderReport.DataBind();
gvOrderReport.Visible = true;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem wie du.
Die meisten Beispiele des linqdatasource-Steuerelement, ilustare die WhereParameters > controlparameter Funktionalität, die ist cool, aber nicht so mächtig.
Die Antwort ist einfach:
Verwenden Sie ein LinqDataSource-Steuerelement und einfach umzusetzen "onselecting" event-pass unabhängig von der Art der Daten, die Sie wünschen.
Hier ist ein kurzes Beispiel mit voller Filterung,-paging-Bestellmöglichkeiten
(beachten Sie auch, dass die besiedelten sql ist optimal, und Anfragen top 10 Datensätze jedes mal)
ASPX:
CODEBEHIND:
Da Sie mithilfe von LINQ-to-SQL mit einem
GYTDataContext
, warum nicht einLinqDataSource
füllen Sie Ihre Gridview?Den
LinqDataSource
verarbeiten kann, paging und Sortieren automatisch.http://msdn.microsoft.com/en-us/library/bb547113.aspx