sorteringsfunktion som sorterar, funkar bra. Men nu vill jag att den ska bara sortera efter det man har valt i en dropdownlista. Någon kan hjälpa mig var jag ska börja?
Nu hoppar jag bara rakt in och missat tidigare trådar.
Men om du fyller en dropdownlista med värden från en databas. Och sedan i denna dropdownlista väljer ut säg 10 poster. Så vill du sorterar dessa 10 poster?
Så fall måste du skapa en ny lista av något objekt som har sorteringinbyggt med dina 10 poster. Sortera dessa och fyll sedan din dropdownlist med dessa poster (eller vad du nu vill göra med dem)
det går redan att sortera. Jag har ett gäng personer i en dropdownlista. Finns ex: Alla nisse nillson, kalle kula, Lasse kongo mm. Väljer man alla så kommer alla personer upp och man kan då sortera, men väljer jag ex Nisse nilsson så visas bara nisse nilson upp. När jag sedan ska ta och sortera så sorterar den efter alla och alla i listan kommer upp då.
Det har och göra med hur du fyller din DropDownList. Nu har jag som sagt inte följt tidigare trådar.
Men om du använder ett DataSet och visar innehållet därifrån, visa alla så visar du hela ditt dataset. Visa Nisse Nilson så visas alla som heter Nisse nilson. Så måste du även begränsa din data i DataSetet när du vill sortera i det. Du kan alltså inte bara ta Sortera eftersom sortera garanterat sorterar på ALL data i ditt dataset och inte bara en delmängd. Nu använder jag aldrig datasets så jag vet inte hur du skall lösa det, eller om det jag säger stämmer. Men det låter logiskt.
Så du måste så fall, sortera endast på din begränsning i ditt dataset eller skapa ett nytt dataset med din begränsade data och sortera detta och sedan binda det till dropdownlistan.
har en funkntion som ser ut så här och det är den som skriver ut vad som händer när jag sorterar, alltså kolla på koden så ser ni att den skriver ut allt.
protected void BindGrid(object sender, System.EventArgs e)
{
DataSet ds = LoadWebs();
string selected = ((DropDownList) sender).SelectedItem.Text;
DataView dv = new DataView(ds.Tables[0]);
DataTable dt = dv.Table;
//Custom names for the columns
//int row = Convert.ToInt32(e.Item.ItemIndex);
//ds.Tables[0].Rows[row]["Responsible"] = EditText.Text;
dt.Columns[0].ColumnName = "Responsible";
dt.Columns[1].ColumnName = "Name";
dt.Columns[2].ColumnName = "LastName";
dt.Columns[3].ColumnName = "Email";
dt.Columns[4].ColumnName = "Company";
dt.Columns[5].ColumnName = "Contact";
Response.Write("Test");
//Sorting criteria
dv.Sort = SortField;
if (!SortAscending)
{
dv.Sort += " ASC"; //append "ASC" to the sort field name in order to sort descending
}
XmlDataGrid.DataSource = dv;
XmlDataGrid.DataBind();
}
här måste jag kolla vilken som är vald från dropdownlistan, och där efter så visas det som är valt och sorteras
Som sagt, jag har aldrig jobbat med DataSet. Men följande rad: DataView dv = new DataView(ds.Tables[0]); borde kunna plockad ut endast det som du vill sortera på.
Då stoppar du ju endast in den datan du vill i dv och sedan gör du din sort på dv. Alltså så skulle det fungera. Frågan är bara hur du begränsar utvalt från datasetet ds. Men det finns säkert en Filter funktion som du kan använda dig av.