webForumDet fria alternativet

Sortera en datagrid?

.NETur .NET

1 svar · 236 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#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;
137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
132 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)