2012-07-26 2 views
-1

asp.net에서 페이지 예제를 찾고 있었기 때문에 프로젝트 온라인 테스트를위한 솔루션을 만들 수 있습니다. 사용자가 다음 질문과 이전 질문으로 이동할 수 있으며/그녀는 직접 특정 질문으로 이동할 수 있습니다. 나는이 쿼리를 봤는데, 나는 gridview를 사용하여 솔루션 페이징을 얻었다. 제안 및 예제 링크는 감사하겠습니다. 내가 이전에, 내가 열 현명한 대신 행 방향에 표시됩니다 사용자가 다음과 미리보기 및 데이터를 탐색 할 수있는 온라인 시험에 대한 매김을 필요가 있다고 언급 한 바와 같이vb를 사용하여 asp.net에서 페이징없이 페이징

<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> 

업데이트 . 내가 아는 것처럼 격자보기는 데이터를 행별로 표시합니다.

온라인 시험 시스템에서는 테이블 형식이 아닌 데이터를 표시해야하므로 테이블의 다음 행으로 이동하면됩니다. 그리드 뷰는 표 형식의 데이터를 보여주기 때문에이 문제를 해결하는 데 도움이 될 것입니다.

+0

내가 MVC/면도기 사용하고있는 HTML 도우미를 가지고 사용하는 방법입니다. 그게 도움이 될까요? –

+0

추신 : 당신이 시도한 것을 보여주지 않았기 때문에 가까운 표를 얻고 있습니다. 사람들은 (어떤 절름발이 인 이유로) 투표를하기보다는 질문을 닫고 질문을 업데이트하는 이유를 설명 할 가능성이 큽니다. 당신이 조금만 업데이트하면 이것이 유효한 질문이라고 생각합니다. 우리에게 당신의 일을 보여주고, 당신이 사용하고있는 것을 설명하십시오 (Mvc/Web Forms 등). –

+2

안녕하세요, @ 코더! [귀하의 질문을 연구하십시오] (http://stackoverflow.com/questions/how-to-ask). [이미 시도한 것] (http://whathaveyoutried.com/)이 있으면 질문에 추가하십시오. 질문이 없으면 먼저 조사하고 질문을 시도한 다음 다시 방문하십시오. – jadarnel27

답변

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를 사용하지 않는 것 같습니다. –

+0

그리고 왜 그는이 코드를 [CustomControl] (http://www.codeproject.com/Articles/87474/ASP-NET-CustomControl)에 다시 사용할 수 없습니까? –

+0

그건 또 다른 온라인 프로젝트 시험에 대한 것입니다 :) –

관련 문제