Я пытаюсь сделать gridView сортируемым, который использует хранимую процедуру в качестве источника данных, я бы не хотел, чтобы он каждый раз перезапускал запрос для достижения этой цели. Как бы заставить его работать мой текущий код:
protected override void OnPreRender(EventArgs e)
{
if (!IsPostBack)
{
SqlCommand cmd2 = new SqlCommand("SR_Student_Course_List", new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["RDCV2ConnectionString"].ConnectionString));
try
{
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.CommandTimeout = 120;
cmd2.Parameters.Add("student_id", SqlDbType.Char, 11).Value = student;
cmd2.Connection.Open();
grdCourses.DataSource = cmd2.ExecuteReader();
grdCourses.DataSourceID = string.Empty;
grdCourses.DataBind();
} finally
{
cmd2.Connection.Close();
cmd2.Connection.Dispose();
cmd2.Dispose();
}}}
Этот код просто связывает данные, когда они не являются обратной передачей, в виде сетки включено состояние просмотра. При нажатии на заголовки столбцов происходит обратная передача, но сортировка не происходит. Если у кого-то есть простое решение для этого, пожалуйста, дайте мне знать или, что еще лучше, сортировка ajax, которая позволит избежать обратной передачи, будет еще лучше. Набор данных является относительно небольшим, однако запрос занимает много времени, поэтому я не хотел бы запрашивать каждый вид.