Hi Jacob_Zac,
Jacob_Zac
I am trying to set PageIndex to last page first time control is displayed.
If you'd like to start with last page, you have to do this after the page sizes are determined. I have done it in PreRender and used a boolean flag to prevent it from being called too often. You could refer to the following code.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace GridViewSample { public partial class GridViewDelete : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e) { } protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e) { } protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e) { } protected void gvProducts_PreRender(object sender, EventArgs e) { if (ViewState["NewGridData"] == null || (bool)ViewState["NewGridData"]) { ViewState["NewGridData"] = false; gvProducts.PageIndex = gvProducts.PageCount - 1; gvProducts.DataBind(); } } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridViewDelete.aspx.cs" Inherits="GridViewSample.GridViewDelete" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title><style> .hidden { display:none;}</style></head><body><form id="form1" runat="server"> <div><asp:GridView ID="gvProducts" runat="server" AutoGenerateColumns="False" BackColor="White" AllowSorting="true" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" OnRowDataBound="gvProducts_RowDataBound" DataSourceID="SqlDataSource1" Font-Size="10pt" AllowPaging="true" PageSize="6" OnPreRender="gvProducts_PreRender"><FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /><Columns><asp:TemplateField HeaderStyle-CssClass="hidden" ItemStyle-CssClass="hidden"><ItemTemplate> <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("ProductID") %>' /><asp:Label ID="Label1" runat="server" Text='<%# Bind("ProductID") %>'></asp:Label> </ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="ProductName" SortExpression="ProductName"><EditItemTemplate><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ProductName") %>'></asp:TextBox></EditItemTemplate><ItemTemplate><asp:Label ID="Label2" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="UnitPrice" SortExpression="UnitPrice" ><EditItemTemplate><asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UnitPrice") %>'></asp:TextBox></EditItemTemplate><ItemTemplate><asp:TextBox ID="TextBox4" runat="server" ReadOnly="True" Text='<%# Bind("UnitPrice") %>' Width="50px"></asp:TextBox></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="UnitsInStock" SortExpression="UnitsInStock"><EditItemTemplate><asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("UnitsInStock") %>'></asp:TextBox></EditItemTemplate><ItemTemplate><asp:TextBox ID="TextBox5" runat="server" ReadOnly="True" Text='<%# Bind("UnitsInStock") %>' Width="50px"></asp:TextBox></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="Discontinued" SortExpression="Discontinued"><EditItemTemplate><asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Discontinued") %>' /></EditItemTemplate><ItemTemplate><asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Discontinued") %>' Enabled="false" /></ItemTemplate></asp:TemplateField><asp:TemplateField ShowHeader="False"><EditItemTemplate><asp:Button ID="Button1" runat="server" CausesValidation="True" CommandName="Update" Text="Update" /> <asp:Button ID="Button2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" /></EditItemTemplate><ControlStyle BackColor="#FFC0C0" /><ItemTemplate><asp:Button ID="Button4" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" OnClientClick="return confirm('Edit')" /><asp:Button ID="Button3" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Delete')" /><asp:Button ID="Button6" runat="server" CausesValidation="False" CommandName="Add" Text="Add" OnClientClick="return confirm('Delete')" /></ItemTemplate></asp:TemplateField></Columns><RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /><SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /><PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /><HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" /><AlternatingRowStyle BackColor="#F7F7F7" /></asp:GridView></div><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:northwindConnectionString %>" DeleteCommand="DELETE FROM [Products] WHERE [ProductID] = @original_ProductID AND [ProductName] = @original_ProductName AND [UnitPrice] = @original_UnitPrice AND [UnitsInStock] = @original_UnitsInStock AND [Discontinued] = @original_Discontinued" InsertCommand="INSERT INTO [Products] ([ProductName], [UnitPrice], [UnitsInStock], [Discontinued]) VALUES (@ProductName, @UnitPrice, @UnitsInStock, @Discontinued)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice], [UnitsInStock], [Discontinued] FROM [Products]" UpdateCommand="UPDATE [Products] SET [ProductName] = @ProductName, [UnitPrice] = @UnitPrice, [UnitsInStock] = @UnitsInStock, [Discontinued] = @Discontinued WHERE [ProductID] = @original_ProductID AND [ProductName] = @original_ProductName AND [UnitPrice] = @original_UnitPrice AND [UnitsInStock] = @original_UnitsInStock AND [Discontinued] = @original_Discontinued" OnInserting="SqlDataSource1_Inserting" OnUpdating="SqlDataSource1_Updating"><DeleteParameters><asp:Parameter Name="original_ProductID" Type="Int32" /><asp:Parameter Name="original_ProductName" Type="String" /><asp:Parameter Name="original_UnitPrice" Type="Decimal" /><asp:Parameter Name="original_UnitsInStock" Type="Int16" /><asp:Parameter Name="original_Discontinued" Type="Boolean" /></DeleteParameters><UpdateParameters><asp:Parameter Name="ProductName" Type="String" /><asp:Parameter Name="UnitPrice" Type="Decimal" /><asp:Parameter Name="UnitsInStock" Type="Int16" /><asp:Parameter Name="Discontinued" Type="Boolean" /><asp:Parameter Name="original_ProductID" Type="Int32" /><asp:Parameter Name="original_ProductName" Type="String" /><asp:Parameter Name="original_UnitPrice" Type="Decimal" /><asp:Parameter Name="original_UnitsInStock" Type="Int16" /><asp:Parameter Name="original_Discontinued" Type="Boolean" /></UpdateParameters><InsertParameters><asp:Parameter Name="ProductName" Type="String" /><asp:Parameter Name="UnitPrice" Type="Decimal" /><asp:Parameter Name="UnitsInStock" Type="Int16" /><asp:Parameter Name="Discontinued" Type="Boolean" /></InsertParameters></asp:SqlDataSource></form></body></html>
I hope it's helpful to you.
Best Regards,
Klein zhang