2012-07-26 23 views
-1

我正在寻找asp.net中的分页示例,通过它我可以为我的项目在线考试做出解决方案,用户可以导航到下一个和上一个问题,而且他/她可以直接转到特定的问题。我GOOGLE了这个查询,并且我使用gridview获得了解决方案分页。建议和示例链接将不胜感激,谢谢!在asp.net中使用vb编写没有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> 

正如我前面提到的,我需要在线考试分页,其中用户可以浏览到下一个和预览和数据都将显示在列明智的,而不是按行。据我所知,网格视图以行方式显示数据。

由于在线考试系统中,我必须以非表格形式显示该数据,因此我只需移动到表格的下一行。我不这么认为,grid-view将帮助我解决这个问题,因为它以表格形式显示数据

+0

我已经得到了我与MVC /剃须刀使用HTML助手。这会有帮助吗? – 2012-07-26 16:00:21

+0

PS:由于您没有展示您尝试过的内容,因此您的选票越来越近。人们(有些跛脚的原因)更可能尝试并结束一个问题,而不是投票,并指定一个原因,鼓励你更新你的问题。如果你稍微更新一下,我认为这是一个有效的问题。向我们展示您的工作,并解释您使用的是什么(Mvc/Web表单等)。 – 2012-07-26 16:00:52

+2

你好,@coders!我们鼓励你[研究你的问题](http://stackoverflow.com/questions/how-to-ask)。如果你[已经尝试过](http://whathaveyoutried.com/),请将其添加到问题中,如果不是,先研究并尝试你的问题,然后再回来。 – jadarnel27 2012-07-26 16:02:07

回答

0

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

0

敬畏。我通常不会为某人写出整个代码,但今天我感觉特别慷慨。

这是我在我的项目中使用的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 

下面是我如何使用它

@Html.Pager("?page=", Model.TotalEvents, Model.PageNumber) 
+3

他似乎并未使用MVC。 – 2012-07-26 16:12:31

+0

为什么他不能将此代码重新用于[CustomControl](http://www.codeproject.com/Articles/87474/ASP-NET-Custom-Control)? – 2012-07-26 16:17:53

+0

这将计入另一个在线项目考试:) – 2012-07-26 16:19:14

相关问题