DetailsView.DataItemIndex Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'indice dell'elemento visualizzato in un controllo DetailsView dall'origine dati sottostante.
public:
virtual property int DataItemIndex { int get(); };
[System.ComponentModel.Browsable(false)]
public virtual int DataItemIndex { get; }
[<System.ComponentModel.Browsable(false)>]
member this.DataItemIndex : int
Public Overridable ReadOnly Property DataItemIndex As Integer
Valore della proprietà
L'indice in base zero dell'elemento di dati visualizzato in un controllo DetailsView dall'origine dati sottostante.
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come usare la DataItemIndex proprietà per determinare l'indice dell'elemento corrente nell'origine dati. Questo valore viene usato per visualizzare il numero di pagina corrente in un controllo contenuto in una Label riga del pager personalizzata.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void CustomerDetailView_DataBound(object sender, EventArgs e)
{
// Get the pager row.
DetailsViewRow pagerRow = CustomerDetailView.BottomPagerRow;
// Get the Label controls that display the current page information
// from the pager row.
Label pageNum = (Label)pagerRow.Cells[0].FindControl("PageNumberLabel");
Label totalNum = (Label)pagerRow.Cells[0].FindControl("TotalPagesLabel");
if ((pageNum != null) && (totalNum != null))
{
// Update the Label controls with the current page values.
int page = CustomerDetailView.DataItemIndex + 1;
int count = CustomerDetailView.DataItemCount;
pageNum.Text = page.ToString();
totalNum.Text = count.ToString();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView PagerTemplate Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView PagerTemplate Example</h3>
<!-- Notice that the LinkButton controls in the pager -->
<!-- template have their CommandName properties set. -->
<!-- The DetailsView control automatically recognizes -->
<!-- certain command names and performs the appropriate -->
<!-- operation. In this example, the CommandName -->
<!-- properties are set "Page" and the CommandArgument -->
<!-- properties are set to "Next" and "Prev", which -->
<!-- causes the DetailsView control to navigate to the -->
<!-- next and previous record, respectively. -->
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
allowpaging="true"
runat="server" OnDataBound="CustomerDetailView_DataBound">
<headerstyle backcolor="Navy"
forecolor="White"/>
<pagerstyle VerticalAlign="Bottom" />
<pagertemplate>
<table width="100%">
<tr>
<td>
<asp:LinkButton id="PreviousButton"
text="<"
CommandName="Page"
CommandArgument="Prev"
runat="Server"/>
<asp:LinkButton id="NextButton"
text=">"
CommandName="Page"
CommandArgument="Next"
runat="Server"/>
</td>
<td align="right">
Page <asp:Label id="PageNumberLabel" runat="server" />
of <asp:Label id="TotalPagesLabel" runat="server" />
</td>
</tr>
</table>
</pagertemplate>
</asp:detailsview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the web.config file. -->
<asp:SqlDataSource ID="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</asp:SqlDataSource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub CustomerDetailView_DataBound(ByVal sender As Object, ByVal e As EventArgs)
' Get the pager row.
Dim pagerRow As DetailsViewRow = CustomerDetailView.BottomPagerRow
' Get the Label controls that display the current page information
' from the pager row.
Dim pageNum As Label = CType(pagerRow.Cells(0).FindControl("PageNumberLabel"), Label)
Dim totalNum As Label = CType(pagerRow.Cells(0).FindControl("TotalPagesLabel"), Label)
If (pageNum IsNot Nothing) And (totalNum IsNot Nothing) Then
' Update the Label controls with the current page values.
Dim page As Integer = CustomerDetailView.DataItemIndex + 1
Dim count As Integer = CustomerDetailView.DataItemCount
pageNum.Text = page.ToString()
totalNum.Text = count.ToString()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView PagerTemplate Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView PagerTemplate Example</h3>
<!-- Notice that the LinkButton controls in the pager -->
<!-- template have their CommandName properties set. -->
<!-- The DetailsView control automatically recognizes -->
<!-- certain command names and performs the appropriate -->
<!-- operation. In this example, the CommandName -->
<!-- properties are set "Page" and the CommandArgument -->
<!-- properties are set to "Next" and "Prev", which -->
<!-- causes the DetailsView control to navigate to the -->
<!-- next and previous record, respectively. -->
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
allowpaging="true"
runat="server" OnDataBound="CustomerDetailView_DataBound">
<headerstyle backcolor="Navy"
forecolor="White"/>
<pagerstyle VerticalAlign="Bottom" />
<pagertemplate>
<table width="100%">
<tr>
<td>
<asp:LinkButton id="PreviousButton"
text="<"
CommandName="Page"
CommandArgument="Prev"
runat="Server"/>
<asp:LinkButton id="NextButton"
text=">"
CommandName="Page"
CommandArgument="Next"
runat="Server"/>
</td>
<td align="right">
Page <asp:Label id="PageNumberLabel" runat="server" />
of <asp:Label id="TotalPagesLabel" runat="server" />
</td>
</tr>
</table>
</pagertemplate>
</asp:detailsview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the web.config file. -->
<asp:SqlDataSource ID="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</asp:SqlDataSource>
</form>
</body>
</html>
Commenti
Quando la funzionalità di paging è abilitata (impostando la proprietà su true
), utilizzare DataItemIndex la AllowPaging proprietà per determinare l'indice del record attualmente visualizzato. È anche possibile usare questa proprietà per modificare a livello di codice il record visualizzato.
Nota
Quando la funzionalità di paging è abilitata, è anche possibile usare questa proprietà per determinare il numero di pagina del record visualizzato; tuttavia, tenere presente che questa proprietà è basata su zero.
Per determinare il numero totale di elementi nell'origine dati, usare la DataItemCount proprietà .