Jag försöker sortera en datagrid, men får det inte att funka riktigt. Det verkar som man måste fylla en dataview med data och sortera på den men jag har en datareader och jag lyckas inte fylla en dataview. Så här ser det ut:
void BindGrid(string sortfield) {
Config config = new Config(this.InitializationObject);
SqlConnection sqlConn = new SqlConnection(config.GetForService("blah","SqlConnectionString"));
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "sp";
sqlCmd.Connection = sqlConn;
DataView dv;
sqlConn.Open();
SqlDataReader dr = sqlCmd.ExecuteReader();
[B]Hur gör man detta??? dv = dr;[/B]
dr.Close();
sqlConn.Close();
dv.Sort = sortfield;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void SortGrid(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) {
BindGrid(e.SortExpression);
}
Ok, löste det halvägs. stoppade in mina data i en datatable istället och sen en dataview... :) Men hur gör jag för att sortera åt båda hållen? Alltså när jag trycker på en kolumn nu så sorterar den i bokstavsordning. Men trycker jag på samma kolumn igen så vill jag sortera åt andra hållet?
private void SortCmd(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) {
BindGrid(e.SortExpression);
}
------------------
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable();
dt.Fill(ds, "test");
DataView dv = dt.DefaultView;
dv.Sort = sortfield;
137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17