2010-07-22 3 views
2

У меня есть следующий бит кода, который дает мне количество строк в gridview, привязанных к источнику данных объекта.ods_Selected Row Count

protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e) 
     { 
      lblHowManyRows.Text = ((List<tblProduct>)e.ReturnValue).Count.ToString(); 

Lovely.

Однако, как бы я пошел, по существу, делать один и тот же счет, но до того, как источник данных объекта выдаст выход сетки?

То, что я пытаюсь сделать, это дать пользователю возможность проверить, сколько строк будет возвращено, прежде чем они на самом деле создать GridView (связанный с источником данных объекта)

Есть ли что-то, что лежит в СОД или я должен просто написать другой оператор linq и связать его с этим?

Извиняюсь за мое невежество

ответ

0

Ну, вы могли бы OnSelecting событие, как это:

protected void OnSelecting(object sender, ObjectDataSourceSelectingEventArgs e) 
    { 
     if (lblHowManyRows.Text == string.Empty) 
     { 
      e.Cancel = true; 
      lblHowManyRows.Text = [Linq statement here].Count().ToString(); 
     } 
    } 

, где он устанавливает метку в подсчитывать в первый раз, и извлекает данные в следующий раз ,

В следующий раз lblHowManyRows не будет пустым, так что это сделает его к odsProduct_Selected методы:

 protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e) 
    { 
     lblHowManyRows.Text = string.Empty; 
    } 

Бланка из этикетки, так что пользователь может продолжать выбирать. Таким образом, в первый раз, когда они нажимают, они получают только счет, и в следующий раз, когда они нажимают, они получают полную сетку.

Если бы это был я, я бы скорее всего получил полный счет через AJAX/webservice, не делая обратной передачи или используя gridview вообще, но я не знаю полного контекста вопроса.