Sortera en datagrid?

.NET

1 svar · 241 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Trådstart#1

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);
		}
Medlem sedan sep. 2005673 inlägg
#2

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;
260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)