Solved

Allow paging of a GridView does not move to the record on the next page.

Posted on 2009-07-08
3
410 Views
Last Modified: 2013-12-17
This is my Gridview:
      <asp:GridView ID="GrdVwBuyUpContributions" runat="server" AutoGenerateColumns="False"
                                                           
            OnRowEditing="GrdVwBuyUpContributions_Click" OnRowUpdating="GrdVwBuyUpContributions_update" OnRowCancelingEdit="GrdVwBuyUpContributions_RowCancelingEdit" OnPageIndexChanging="GrdVwBuyUpContributions_PageIndexChanging"
            BackColor="White" BorderColor="#E7E7FF"
            BorderStyle="None" BorderWidth="1px" GridLines="Horizontal" HorizontalAlign="Left" DataKeyNames="Contribution_ID"
            Width="300" AllowPaging="True" PageSize="10" >
            <Columns>
                <asp:CommandField ShowEditButton="True"></asp:CommandField>
                <asp:TemplateField HeaderText="Contribution Date" HeaderStyle-HorizontalAlign="Left">
                    <ItemTemplate>
                        <%# Eval("Date") %>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="DateTextBox" Text='<%# Eval("Date")%>' runat="server"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="You must enter a valid date."
                            ControlToValidate="DateTextBox">
                            *</asp:RequiredFieldValidator>
                        <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="You must provide a valid Date.."
                            ControlToValidate="DateTextBox" Operator="DataTypeCheck" Type="Date">
                            *</asp:CompareValidator>
                        <cc1:CalendarExtender ID="CalendarExtender1" TargetControlID="DateTextBox" Format="yyyy/MM/dd"
                            runat="server">
                        </cc1:CalendarExtender>
                     
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Amount" HeaderStyle-HorizontalAlign="Left">
                    <ItemTemplate>
                       <%# string.Format("{0:c}", Eval("Amount"))%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="AmountTextBox" Text='<%# string.Format("{0:0.00}", Eval("Amount"))%>' runat="server"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2"  runat="server" ErrorMessage="You must enter an amount."
                            ControlToValidate="AmountTextBox">
                            *</asp:RequiredFieldValidator>
                        <asp:CompareValidator ID="CompareValidator2" runat="server" ErrorMessage="You must provide a valid currency value for the Amount."
                            ControlToValidate="AmountTextBox" Operator="DataTypeCheck" Type="Currency">
                            *</asp:CompareValidator>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
            <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
            <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
            <AlternatingRowStyle BackColor="#F7F7F7" />
        </asp:GridView>

This is the code when pageIndex changes:

 protected void GrdVwBuyUpContributions_PageIndexChanging(Object sender, GridViewPageEventArgs e)
     {

       // Cancel the paging operation if the user attempts to navigate
       // to another page while the GridView control is in edit mode.
       if (GrdVwBuyUpContributions.EditIndex != -1)
       {
         // Use the Cancel property to cancel the paging operation.
         e.Cancel = true;

         // Display an error message.
         int newPageNumber = e.NewPageIndex + 1;
         lblMessage.Text = "Please update the record before moving to page " +
           newPageNumber.ToString() + ".";
       }
       else
       {
         // Clear the error message.
         lblMessage.Text = "";
         
       }

However when I click on any of the page numbers on the page, the gridview does not do what it is supposed to do.

Why?
0
Comment
Question by:Faye_DBA
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 15

Accepted Solution

by:
jinal earned 500 total points
ID: 25041014

 protected void GrdVwBuyUpContributions_PageIndexChanging(Object sender, GridViewPageEventArgs e)
     {
 
       // Cancel the paging operation if the user attempts to navigate
       // to another page while the GridView control is in edit mode.
       if (GrdVwBuyUpContributions.EditIndex != -1)
       {
         // Use the Cancel property to cancel the paging operation.
         e.Cancel = true;
 
         // Display an error message.
         int newPageNumber = e.NewPageIndex;
         lblMessage.Text = "Please update the record before moving to page " +
           newPageNumber.ToString() + ".";
       }
       else
       {
         // Clear the error message.
         GrdVwBuyUpContributions.PageIndex = e.NewPageIndex;
         lblMessage.Text = "";
         
       }

Open in new window

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
API v SOA 8 64
ASP.NET data base connection 35 95
How do I "share" on social sites? 2 39
How do you think this website does searches? 5 35
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question