Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Свойство ObjectDataSource.StartRowIndexParameterName

 

Опубликовано: Октябрь 2016

Возвращает или задает имя параметра метода извлечения данных, который позволяет задать значение идентификатора первой записи для обеспечения поддержки разбиения по страницам источника данных.

Пространство имен:   System.Web.UI.WebControls
Сборка:  System.Web (в System.Web.dll)

public string StartRowIndexParameterName { get; set; }

Значение свойства

Type: System.String

Имя параметра метода бизнес-объекта используется для указания первой записи. Параметр должен возвращать целочисленное значение. Значение по умолчанию — "startRowIndex".

StartRowIndexParameterName Свойство используется для поддержки разбиения по страницам источника данных. Дополнительные сведения о поддержке разбиения по страницам ObjectDataSource управления см. в разделе EnablePaging.

StartRowIndexParameterName Делегирует свойство StartRowIndexParameterName свойство ObjectDataSourceView объекта, который связан с ObjectDataSource управления.

В следующих трех примерах веб-страницы, класс фонового кода страницы и класс доступа к данным, позволяющий пользователю выбрать количество записей, отображаются на странице.

Веб-страница содержит ObjectDataSource свойство EnablePaging задано значение true. SelectCountMethod Свойству присвоено имя метода, который возвращает общее число записей в запросе. MaximumRowsParameterName Свойство и StartRowIndexParameterName свойство присваиваются имена параметров, которые используются в методе Select. Страница также содержит DropDownList элемента управления.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ObjectDataSource Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    How many rows to display on this page:<br />
    <asp:DropDownList 
          AutoPostBack="true" 
          ID="rowsToDisplay" 
          runat="server" 
          onselectedindexchanged="rowsToDisplay_SelectedIndexChanged">
        <asp:ListItem Value="5"></asp:ListItem>
        <asp:ListItem Value="10" Selected="True"></asp:ListItem>
        <asp:ListItem Value="20"></asp:ListItem>
    </asp:DropDownList> 

    <asp:ObjectDataSource 
        SelectCountMethod="GetEmployeeCount" 
        EnablePaging="true" 
        TypeName="CustomerLogic" 
        SelectMethod="GetSubsetOfEmployees"
        MaximumRowsParameterName="maxRows"
        StartRowIndexParameterName="startRows"
        ID="ObjectDataSource1" 
        runat="server">
    </asp:ObjectDataSource>

    <asp:GridView 
        DataSourceID="ObjectDataSource1" 
        AllowPaging="true" 
        ID="GridView1" 
        runat="server">
    </asp:GridView>

    </div>
    </form>
</body>
</html>

Во втором примере показан обработчик для ListControl.SelectedIndexChanged событие DropDownList элемента управления. Код в обработчик наборов PageSize свойство для выбора пользователя.

protected void rowsToDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
    GridView1.PageSize = int.Parse(rowsToDisplay.SelectedValue);
}

В третьем примере класс доступа к данным, который извлекает данные из таблицы Customers. Он содержит метод с именем GetSubsetOfEmployees, которому присваивается SelectMethod Свойства ObjectDataSource элемента управления. В примере также содержит метод с именем GetEmployeeCount, которому присваивается SelectCountMethod Свойства ObjectDataSource элемента управления. Этот класс использует LINQ для запроса к таблице клиентов. В этом примере требуется класс LINQ to SQL, представляющий базы данных Northwind и таблицы Customers. Дополнительные сведения см. в разделе Практическое руководство: создание классов LINQ to SQL в веб-проекте.

public class CustomerLogic
{

    public List<Customer> GetSubsetOfEmployees(int startRows, int maxRows)
    {
        NorthwindDataContext ndc = new NorthwindDataContext();
        var customerQuery = 
            from c in ndc.Customers
            select c;

        return customerQuery.Skip(startRows).Take(maxRows).ToList<Customer>();
    }

    public int GetEmployeeCount()
    {
        object cachedCount = HttpRuntime.Cache["TotalEmployeeCount"];
        if (cachedCount != null)
        {
            return int.Parse(cachedCount.ToString());
        }
        else
        {
            NorthwindDataContext ndc = new NorthwindDataContext();
            var totalNumberQuery =
                from c in ndc.Customers
                select c;

            int employeeCount = totalNumberQuery.Count();
            HttpRuntime.Cache.Add("TotalEmployeeCount", employeeCount, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
            return employeeCount;
        }
    }
}

.NET Framework
Доступно с 2.0
Вернуться в начало
Показ: