Måste du ha dataviewmanager?
DataView View = new DataView(DataSetX.tables[0]);
if (sortExpression.Length > 0)
{
View.Sort = sortExpression;
}
GridViewX.DataSource = View;
GridViewX.DataBind();
7 svar · 660 visningar · startad av Lukaspojken
Jag hämtar upp ett cachat dataset (=DatasetX) och skulle behöva göra en sortering en av tabellerna i dataset:et men jag lyckas inte få till det. Är det inte så här man gör?
DataViewManager ViewManager = new DataViewManager(DataSetX);
if (sortExpression.Length > 0)
{
ViewManager.DataViewSettings[0].Sort = sortExpression;
}
GridViewX.DataSource = ViewManager.DataSet;
GridViewX.DataBind();
Måste du ha dataviewmanager?
DataView View = new DataView(DataSetX.tables[0]);
if (sortExpression.Length > 0)
{
View.Sort = sortExpression;
}
GridViewX.DataSource = View;
GridViewX.DataBind();
I dit kodexempel så sorterar du en datatabell och lägger in den i gridview:n. Det jag behöver göra är att sortera en datatabell i ett dataset och därefter skicka in datasetet in i gridview:n. Anledningen för att jag måste skicka in datasetet är för att jag har flera tabeller i den som används i gridview:n.
Använd select
http://www.developerfusion.co.uk/show/4703/2/
Hur menar du att jag ska använda mig av select:en? För jag måste få in ett dataset:et med flera tabeller in i gridview:en.
Kan du inte använda dig av System.Data.DataView.Sort så måste du gå den fula vägen med Select, är jag nästan helt säker på, och sortera dina tabeller en efter en. Jobbigt med Select eftersom du får tillbaks en DataRow[]
Du har en rätt bra länk ang sortering och filtering (med DataViewManager som exempel) i ado.net här,råkade klistra in fel innan
http://www.akadia.com/services/dotnet_filter_sort.html
-> erka
Så här ser strukturen ut: DatasetX innehåller två tabeller datatabell Y och datatabell X. Det jag behöver göra är att sortera om datatabell Y.
Om jag förstår dig så menar du att jag ska använda select på databell Y. Det jag får ut av select:en är en kollektion av rader. För att få in den nya sorteringen i datatabell Y så måste jag först ta bort ta bort de gamla raderna och därefter loopa igenom sorteringskollektionen och lägga till dessa rader. Känns inte som en snygg lösning :)
Finns det verkligen ingen bättre lösning?
Nahh inte vad jag kan komma på, sortera datatables är störande jobbigt om man har flera och inte kan använda DataView och dess sort genom att skicka in datatable dit. Alternativt andvända DataTable.DefaultView som en DataView. Lite omvänt kanske, skriv en wrapper som sorterar rätt DataTable och returnerar ett DataSet.