2015-03-03 1 views

ответ

0

В этом примере используется Entity Framework 6 для доступа к данным. Это означает, что данные RadGrid pageSize, pageIndex и сортировки должны сохраняться в результате вызова, который EF делает в базу данных.

Допустим следующий URL-адрес, когда вы придете на страницу, содержащую RadGrid.

http://localhost:61878/search?pageindex=8&orderid=2871517&pagesize=50 
  1. декларативная разметка RadGrid будет выглядеть следующим образом.

    <telerik:RadGrid ID="OrdersMasterGrid" runat="server" 
         AllowPaging="True" 
         AllowSorting="True" 
         AutoGenerateColumns="False" 
         OnNeedDataSource="GridOnNeedDataSource" 
         OnPreRender="GridPreRender"> 
    
  2. Тогда PageLoad будет выглядеть следующим образом. Это срабатывает перед событием OnNeedDataSource RadGrid, поэтому важно установить правильные идентификаторы страниц и страниц, поскольку эта информация будет полностью передаваться в базу данных.

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (IsPostBack == false) 
        { 
         OrderID_QueryString = Request.QueryString.GetValue<string>("orderid"); 
          OrdersMasterGrid.MasterTableView.CurrentPageIndex = Request.QueryString.GetValue<int>("pageindex"); 
          OrdersMasterGrid.MasterTableView.PageSize = Request.QueryString.GetValue<int>("pagesize"); 
        } 
    
  3. Programatically расширяет правильную строку происходит во время OnPreRender события.
    GridPreRender EventHandler будет выглядеть так:

    protected void GridPreRender(object sender, EventArgs e) 
    { 
        foreach (object gridDataItem in OrdersMasterGrid.MasterTableView.Items) 
        { 
         if (gridDataItem is GridDataItem) 
         { 
          GridDataItem gdi = gridDataItem as GridDataItem; 
          if (gdi["OrderID"].Text == OrderID_QueryString) 
          { 
           gdi.Expanded = true; 
           break; 
          } 
         } 
        } 
    } 
    

Заключение: Хотя этот пример использует QueryString, это может быть лучше использовать ViewData, ViewBag или другие прозрачные механизмы. Ловушка такого подхода заключается в том, что если пользователь решит закладок на странице, он перестанет работать в конечном итоге, когда запрошенный заказ не существует в данных, возвращаемых EF6 для 8-й страницы, когда размер страницы равен 50.

 Смежные вопросы

  • Нет связанных вопросов^_^