0

I simply want to set my GridView's PageSize to 20 or set AllowPaging to True. However, changing the GridView's attributes on the client side or the server side does not do anything -- it's stuck at the default paging at 10 rows.

I can still run a Response.Redirect() in Page_Load() so I believe the page is not erroring out.

The only thing I believe that could be causing complications is JavaScript: I used jQuery to manipulate the GridView Table so that I can use DataTable.js to sort the table.

I've never worked with VB.NET so any pointers are appreciated. Perhaps this is a quick fix but I am too ignorant of VB.NET to know the problem.

Here is the aspx page:

<%@ Page Title="Available Vehicles" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="VehicleList.aspx.vb" Inherits="RentVehicle.VehicleList" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> <script> function ShowFull(ctrl) { if (ctrl.style.height == '50px') { ctrl.style.height = '150px'; ctrl.style.width = '270px'; } else {ctrl.style.height = '50px'; ctrl.style.width = '90px'; }} </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-32627957-1']); _gaq.push(['_trackPageview']); (function () { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script type="text/javascript"> $(document).ready(function () { // Fix up GridView to support THEAD tags $("#<%=GridView1.ClientID%> tbody").before("<thead><tr></tr></thead>"); $("#<%=GridView1.ClientID%> thead tr").append($("#<%=GridView1.ClientID%> th")); $("#<%=GridView1.ClientID%> tbody tr:first").remove(); }); </script> <script type = "text/javascript"> // now flip ADA $(document).ready(function() { $('#<%=GridView1.ClientID%>').DataTable({ "aaSorting": [[2,'asc'], [3,'desc']] }); }); </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> <h2 style="text-align:center;">Available Vehicles</h2> <div style="text-align:center;"> <p>Click on a thumbnail for a larger photograph of the vehicle.</p> </div> <div style="width: 100%; height: 2px; background: #F87431; overflow: hidden; padding-left:0px"></div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="0" CellSpacing="2" OnRowDataBound="OnRowDataBound" > <Columns> <asp:templatefield> <itemtemplate> <asp:image id="Image1" runat="server" onclick="ShowFull(this)" imageurl='<%#Eval("photo_large")%>' width="90px" Height="50px" /> </itemtemplate> </asp:templatefield> <asp:BoundField DataField="category_name" HeaderText="Type" SortExpression="category_name" /> <asp:TemplateField HeaderText="ADA" SortExpression="vehicle_name"> <ItemTemplate> <asp:image id="Image2" runat="server" imageurl="images/disability-symbol.png" width="25px" Height="25px" style="margin-left:5px;" visible='<%# If((Eval("category_name").ToString().Equals("ADA Mini Van") OR Eval("category_name").ToString().Equals("ADA ProMaster")), "True", "False")%>' /> </ItemTemplate> <ItemStyle Width="50px" /> </asp:TemplateField> <asp:BoundField DataField="vehicle_name" HeaderText="Model" SortExpression="vehicle_name" /> <asp:BoundField DataField="internal_daily_rate" HeaderText="Internal Per Day" SortExpression="internal_daily_rate" DataFormatString="{0:C}" HeaderStyle-HorizontalAlign="Left" ><HeaderStyle HorizontalAlign="Left"></HeaderStyle> <ItemStyle Width="70px" /> </asp:BoundField> <asp:BoundField DataField="internal_mileage_rate" HeaderText="Internal Per Mile" SortExpression="internal_mileage_rate" DataFormatString="{0:C}"> <ItemStyle Width="70px" /> </asp:BoundField> <asp:BoundField DataField="external_daily_rate" HeaderText="External Per Day" SortExpression="external_daily_rate" DataFormatString="{0:C}"><ItemStyle Width="70px" /> </asp:BoundField> <asp:BoundField DataField="external_mileage_rate" HeaderText="External Per Mile" SortExpression="external_mileage_rate" DataFormatString="{0:C}"><ItemStyle Width="70px" /> </asp:BoundField> <asp:TemplateField HeaderText="HOV*" > <ItemTemplate> <asp:CheckBox ID="checkHOV" runat="server" HeaderText="HOV*" Checked='<%# If(Eval("high_occupancy").ToString() = "Y", "True", "False")%>' visible='<%# If(Eval("high_occupancy").ToString() = "Y", "True", "False")%>'></asp:CheckBox> </ItemTemplate> <ItemStyle Width="44px" /> </asp:TemplateField> <asp:CommandField HeaderText="Rent Me!" ButtonType="Image" InsertVisible="False" SelectImageUrl="~/Images/carovico.gif" ShowCancelButton="False" ShowHeader="True" ShowSelectButton="True" Visible="false"/> <asp:TemplateField HeaderText="Rental Quantity"> <ItemTemplate> <asp:Label ID="lblMaxNumber" runat="server" Text='<%# Eval("Max_number")%>' Visible = "false" /> <asp:DropDownList ID="DropDownList1" runat="server"> </asp:DropDownList> </ItemTemplate> <ItemStyle Width="70px" /> </asp:TemplateField> </Columns> </asp:GridView> <div style="width: 100%; height: 2px; background: #F87431; overflow: hidden; padding-left:0px"></div> <br /> <div style="float:right;padding-right:85px"> <asp:Button ID="ButtonCheckout" runat="server" Text="Check Out" /><br /> <asp:Label ID="LabelErrorMsg" runat="server" Text="You have not chosen any vehicles." ForeColor="#FF3300" Visible="False"></asp:Label> </div> &nbsp;<p><strong>* High occupancy training required.</strong></p> <p><strong>Note: Similar vehicle may be substituted within requested vehicle category depending on availability. </strong></p><br /> Garage/Motol Pool Map: <br /><asp:Image ID="Image2" runat="server" Height="172px" ImageUrl="~/Images/motorpool.gif" Width="275px" /> </asp:Content> 

And here is the aspx.vb:

Public Class VehicleList Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then If IsNothing(Session("NetID")) Then Response.Redirect("login.aspx") ElseIf IsNothing(Session("LoggedUser")) Then ' users with net id logged in to see the info anyway ' Response.Redirect("aboutme.aspx") End If Dim Available_Vehicle As System.Data.DataSet = Rentalwrapper.RentalRequest.Get_Vehicle_list() GridView1.DataSource = Available_Vehicle GridView1.AllowPaging = False 'DOESNT WORK, HALP GridView1.DataBind() End If LabelErrorMsg.Visible = False End Sub Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) If (e.Row.RowType = DataControlRowType.DataRow) Then 'Find the DropDownList in the Row Dim ddlCountries As DropDownList = CType(e.Row.FindControl("dropdownlist1"), DropDownList) Dim LabelMaxNum As Label = CType(e.Row.FindControl("lblmaxnumber"), Label) Dim max_number As Int32 = CInt(LabelMaxNum.Text) For i As Int16 = 0 To max_number ddlCountries.Items.Add(i.ToString) Next ddlCountries.SelectedValue = 0 End If End Sub Protected Sub ButtonCheckout_Click(sender As Object, e As EventArgs) Handles ButtonCheckout.Click Dim SelectedVehicle As New ArrayList() Dim vehicleNo As DropDownList, Quantity As Int16 = 0 For Each row In GridView1.Rows vehicleNo = row.FindControl("dropdownlist1") Quantity = CInt(vehicleNo.SelectedValue) If Quantity > 0 Then SelectedVehicle.Add(Quantity.ToString & " x " & row.cells(2).text) 'CType(row.findcontrol("vehicle_name"), TextBox).Text) End If Next If SelectedVehicle.Count = 0 Then LabelErrorMsg.Visible = True Else Session("SelectedVehicle") = SelectedVehicle If IsNothing(Session("LoggedUser")) Then Response.Redirect("aboutme.aspx") Else Response.Redirect("RentalDetail.aspx") End If End If End Sub End Class 

This code still pages the GridView at the default 10 rows. I just don't want it to page!

2
  • So you're saying the code above shows 10 rows at a time and you can view multiple pages of data? The paging controls are there? Commented Dec 5, 2015 at 1:52
  • @Steve: Yes - and I don't want it to page. Sorry for the late reply. What do you think is the issue? Commented Dec 7, 2015 at 19:04

1 Answer 1

1

I figured it out. There was something wrong with my database connection in my login page, so the application was erroring out. The AllowPaging = False works now. It's weird because I could do everything else but modify the GridView... Oh well. But that wasn't the only issue.

When you add a <tr> to a GridView on the client side, the GridView gets all stupid and starts paging the application, even if AllowPaging = False. on the Server side and Client side.

So far, my experience with VB.NET has been bad - hopefully I go over this learning curve smoother from here on out.

Sign up to request clarification or add additional context in comments.

2 Comments

Really? I think it's great, though with ASP there were things that frustrated me until I figured out how it "thinks". What are you used to?
I was a PHP dev for quite a while, so yeah all these ASP practices are foreign to me.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.