Udostępnij za pośrednictwem


ObjectDataSource.StartRowIndexParameterName Właściwość

Definicja

Pobiera lub ustawia nazwę parametru metody pobierania danych, który jest używany do wskazania wartości identyfikatora pierwszego rekordu do pobrania na potrzeby obsługi stronicowania źródła danych.

public:
 property System::String ^ StartRowIndexParameterName { System::String ^ get(); void set(System::String ^ value); };
public string StartRowIndexParameterName { get; set; }
member this.StartRowIndexParameterName : string with get, set
Public Property StartRowIndexParameterName As String

Wartość właściwości

Nazwa parametru metody obiektu biznesowego używana do wskazania pierwszego rekordu do pobrania. Parametr musi zwrócić wartość całkowitą. Wartość domyślna to "startRowIndex".

Przykłady

W poniższych trzech przykładach przedstawiono stronę sieci Web, klasę stron za pomocą kodu i klasę dostępu do danych, która umożliwia użytkownikowi wybranie liczby rekordów wyświetlanych na stronie.

Strona sieci Web zawiera kontrolkę ObjectDataSource , której EnablePaging właściwość jest ustawiona na true. Właściwość SelectCountMethod jest ustawiona na nazwę metody zwracającej łączną liczbę rekordów w zapytaniu. Właściwość MaximumRowsParameterName i StartRowIndexParameterName właściwość są ustawione na nazwy parametrów używanych w metodzie Select. Strona zawiera również kontrolkę 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>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</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>

W drugim przykładzie przedstawiono procedurę obsługi zdarzenia ListControl.SelectedIndexChanged kontrolki DropDownList . Kod w procedurze obsługi ustawia PageSize właściwość na wybór użytkownika.

protected void rowsToDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
    GridView1.PageSize = int.Parse(rowsToDisplay.SelectedValue);
}
Protected Sub rowsToDisplay_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rowsToDisplay.SelectedIndexChanged
    GridView1.PageSize = Integer.Parse(rowsToDisplay.SelectedValue)
End Sub

Trzeci przykład przedstawia klasę dostępu do danych, która pobiera dane z tabeli Customers. Zawiera ona metodę o nazwie GetSubsetOfEmployees, która jest przypisana do SelectMethod właściwości kontrolki ObjectDataSource . Przykład zawiera również metodę o nazwie GetEmployeeCount, która jest przypisana do SelectCountMethod właściwości kontrolki ObjectDataSource . Klasa używa LINQ do wykonywania zapytań względem tabeli Customers. Przykład wymaga klasy LINQ to SQL reprezentującej bazę danych Northwind i tabelę Customers. Aby uzyskać więcej informacji, zobacz How to: Create LINQ to SQL Classes in a Web Project (Instrukcje: tworzenie klas LINQ to SQL w projekcie internetowym).

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;
        }
    }
}
Public Class CustomerLogic
    Public Function GetSubsetOfEmployees(ByVal startRows As Integer, ByVal maxRows As Integer) As List(Of Customer)

        Dim ndc As New NorthwindDataContext()
        Dim customerQuery = _
        From c In ndc.Customers _
            Select c

        Return customerQuery.Skip(startRows).Take(maxRows).ToList()
    End Function

    Public Function GetEmployeeCount() As Integer

        Dim cachedCount = HttpRuntime.Cache("TotalEmployeeCount")
        If cachedCount IsNot Nothing Then
            Return Integer.Parse(cachedCount.ToString())
        Else
            Dim ndc As New NorthwindDataContext()
            Dim totalNumberQuery = _
            From c In ndc.Customers _
                Select c

            Dim employeeCount = totalNumberQuery.Count()
            HttpRuntime.Cache.Add("TotalEmployeeCount", employeeCount, Nothing, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, Nothing)
            Return employeeCount
        End If
    End Function
End Class

Uwagi

Właściwość StartRowIndexParameterName jest używana do obsługi stronicowania źródła danych. Aby uzyskać informacje o tym, jak stronicowanie jest obsługiwane przez kontrolkę ObjectDataSource , zobacz EnablePaging.

Właściwość StartRowIndexParameterName deleguje do StartRowIndexParameterName właściwości obiektu skojarzonego ObjectDataSourceView z kontrolką ObjectDataSource .

Dotyczy

Zobacz też