Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用vb在asp.net中实现无gridview分页_Asp.net_Vb.net_Pagination_Pager - Fatal编程技术网

使用vb在asp.net中实现无gridview分页

使用vb在asp.net中实现无gridview分页,asp.net,vb.net,pagination,pager,Asp.net,Vb.net,Pagination,Pager,我在asp.net中搜索分页示例,通过该示例,我可以为我的项目在线考试制定解决方案,用户可以导航到下一个和上一个问题,也可以直接移动到特定问题。我用谷歌搜索了这个查询,得到了使用gridview分页的解决方案。建议和示例链接将不胜感激,谢谢 已更新 <asp:GridView ID="gvUserlist" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="Log

我在asp.net中搜索分页示例,通过该示例,我可以为我的项目在线考试制定解决方案,用户可以导航到下一个和上一个问题,也可以直接移动到特定问题。我用谷歌搜索了这个查询,得到了使用gridview分页的解决方案。建议和示例链接将不胜感激,谢谢

已更新

 <asp:GridView ID="gvUserlist" runat="server" AllowPaging="True" AutoGenerateColumns="False"
            DataKeyNames="Login_Id" DataSourceID="DSUserList" CellPadding="4" ForeColor="#333333"
            GridLines="None" Width="681px">
            <RowStyle BackColor="#EFF3FB" />
            <Columns>

                <asp:BoundField DataField="Login_Id" HeaderText="User Id" ReadOnly="True" SortExpression="Login_Id" />
                <asp:BoundField DataField="User_Type" HeaderText="User Type" SortExpression="User_Type" />
                <asp:BoundField DataField="First_Name" HeaderText="First Name" SortExpression="First_Name" />
                <asp:BoundField DataField="Last_Name" HeaderText="Last Name" SortExpression="Last_Name" />
                <asp:TemplateField>
                    <EditItemTemplate>
                        <asp:CheckBox ID="cbuserid" runat="server" />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="cbuserid" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
        <asp:SqlDataSource ID="DSUserList" runat="server" ConnectionString="<%$ ConnectionStrings:JPConnString %>"
            SelectCommand="SELECT User_Login.Login_Id, User_Login.User_Type, User_Login.Login_Status, derivedtbl_1.First_Name, derivedtbl_1.Last_Name FROM User_Login INNER JOIN (SELECT Email_Id, First_Name, Last_Name FROM User_Info UNION SELECT Email_Id, First_Name, Last_Name FROM Emp_Info) AS derivedtbl_1 ON User_Login.Login_Id = derivedtbl_1.Email_Id WHERE (User_Login.Login_Status = @Login_Status)">
            <SelectParameters>
                <asp:Parameter DefaultValue="Activate" Name="Login_Status" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>

正如我前面提到的,我需要在线考试的分页,在这种分页中,用户可以导航到下一步并预览,数据将以列方式而不是行方式显示。正如我所知,网格视图按行显示数据


因为,在在线考试系统中,我必须以表格形式显示数据,所以我只需要移动到表格的下一行。我不这么认为,网格视图将帮助我解决这个问题,因为它以表格形式显示数据

详细视图
听起来是一个完美的选择。它旨在显示单个元素,但您仍然可以将其绑定到元素列表,并向前和向后导航。

Awe-shucks。我通常不会为某人写完整的代码,但我今天感觉特别慷慨

这是我在项目中使用的VB寻呼机。这是我在MVC应用程序中使用的辅助方法

    ''' <summary>
    ''' Pagers the specified helper.
    ''' </summary>
    ''' <param name="helper">The helper.</param>
    ''' <param name="urlPrefix">The URL prefix.</param>
    ''' <param name="totalRecords">The total records.</param>
    ''' <param name="currentPage">The current page.</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Extension()>
    Public Function Pager(helper As HtmlHelper,
                          urlPrefix As String,
                          totalRecords As Integer,
                          currentPage As Integer) As MvcHtmlString

        ' Get out if we have 5 or less records
        If totalRecords <= 5 Then Return Nothing

        ' Make sure we're not getting invalid pages
        If currentPage <= 0 Then currentPage = 1

        ' Setup our initial variables
        Dim sb1 As New StringBuilder(),
            totalPages = (Math.Round((totalRecords / 5) + 0.5)),
            startingPoint,
            linksAfterCurrent,
            endPoint,
            i


        ' Set boundries for inner link numbers
        Select Case currentPage
            Case totalPages : startingPoint = currentPage - 5
            Case (totalPages - 1) : startingPoint = currentPage - 4
            Case Else : startingPoint = currentPage - 3
        End Select

        Select Case currentPage
            Case 1 : linksAfterCurrent = currentPage + 4
            Case 2 : linksAfterCurrent = currentPage + 3
            Case Else : linksAfterCurrent = currentPage + 2
        End Select

        sb1.Append("<div id=""pagercontainer""><ul class=""pager"">")

        ' Display the previous button and first button
        If currentPage > 1 AndAlso startingPoint >= 1 Then
            If startingPoint > 1 Then sb1.AppendLine([String].Format("<li><a href=""{0}{1}"" title=""go to page {1}"">&laquo;</a></li>", urlPrefix, currentPage - 1))
            sb1.AppendLine([String].Format("<li><a href=""{0}1"" title=""go to page 1"">1</a></li>", urlPrefix))
            If startingPoint > 1 Then sb1.AppendLine("&nbsp;&nbsp;&nbsp;")
        End If


        ' Generate the inner numbers
        i = startingPoint
        While (i < linksAfterCurrent)

            ' This 'if' statement keeps us from building a pager list that's longer than the totalPages.
            If (i >= 0) AndAlso
                (i < totalPages) Then

                ' Build out the inner pager buttons
                sb1.AppendLine([String].Format("<li><a href=""{0}{1}"" {2} title=""go to page {1}"">{1}</a></li>",
                                                urlPrefix,
                                                i + 1,
                                                If(i + 1 = currentPage, "class=""youarehere""", String.Empty)))
            End If

            i += 1
        End While

        endPoint = i

        ' Display the next button and the last button
        If (currentPage < endPoint) AndAlso
            (endPoint < totalPages) Then
            If endPoint < totalPages - 1 Then sb1.AppendLine("&nbsp;&nbsp;&nbsp;")
            sb1.AppendLine([String].Format("<li><a href=""{0}{1}"" title=""go to page {1}"">{1}</a></li>", urlPrefix, totalPages.ToString()))
            If endPoint < totalPages - 1 Then sb1.AppendLine([String].Format("<li><a href=""{0}{1}"" title=""go to page {1}"">&raquo;</a></li>", urlPrefix, currentPage + 1))
        End If


        sb1.Append("</ul></div><div class=""clear""></div>")


        Return MvcHtmlString.Create(sb1.ToString())
    End Function

    ''' <summary>
    ''' Pagers the specified helper.
    ''' </summary>
    ''' <param name="helper">The helper.</param>
    ''' <param name="urlPrefix">The URL prefix.</param>
    ''' <param name="totalRecords">The total records.</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Extension()>
    Public Function Pager(helper As HtmlHelper,
                          urlPrefix As String,
                          totalRecords As Integer) As MvcHtmlString
        Return helper.Pager(urlPrefix, totalRecords, 1)
    End Function

我有一个与MVC/Razor一起使用的HTML帮助程序。这会有帮助吗?附言:你的票数很接近,因为你还没有展示你的努力。人们(出于一些站不住脚的原因)更倾向于尝试结束一个问题,而不是就它投票并指定一个原因。。。鼓励您更新您的问题。我认为这是一个有效的问题,如果你只是更新一点。向我们展示您的工作,并解释您使用的内容(Mvc/Web表单等)。您好,@coders!我们鼓励你这样做。如果你有,请将其添加到问题中——如果没有,请先研究并尝试你的问题,然后再回来。为了它的价值,@ChaseFlorell,我倾向于先讨论,然后发表评论(这就是为什么在接近投票和我的评论之间有一些延迟)。我读过这条线索,但我肯定不同意。向下投票让用户也注意到了这一点,但并不妨碍他们加入社区。如果我们不断地对那些不完全了解“规则”的新用户提出问题,那么我们的社区就变成了一个“老男孩俱乐部”,而不是培养和发展它。为什么他不能将这段代码重新调整为一个新的社区呢?这将成为另一个在线项目考试:)
    @Html.Pager("?page=", Model.TotalEvents, Model.PageNumber)