Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.99 KB | None | 0 0
  1. public ActionResult DynamicGridData(string sidx, string sord, int page, int rows)
  2. {
  3. var context = new HaackOverflowDataContext();
  4. int pageIndex = Convert.ToInt32(page) - 1;
  5. int pageSize = rows;
  6. int totalRecords = context.Questions.Count();
  7. int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
  8.  
  9. var questions = context.Questions.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
  10.  
  11. var jsonData = new
  12. {
  13. total = totalPages,
  14. page = page,
  15. records = totalRecords,
  16. rows = (
  17. from question in questions
  18. select new
  19. {
  20. i = question.Id,
  21. cell = new string[] { question.Id.ToString(), question.Votes.ToString(), question.Title }
  22. }).ToArray()
  23. };
  24. return Json(jsonData);
  25. }
  26.  
  27. var questions = context.Questions.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
  28.  
  29. Function MemberData(ByVal sidx As String, ByVal sord As String, ByVal page As Integer, ByVal rows As Integer) As JsonResult
  30.  
  31. Dim allRecords As IQueryable(Of Models.Member) = Me.MemberRepository.FindAllMembers
  32. Dim currentPageRecords As IQueryable(Of Models.Member)
  33. Dim pageIndex As Integer = page - 1
  34. Dim pageSize As Integer = rows
  35. Dim totalRecords As Integer = allRecords.Count
  36. Dim totalPages As Integer = CInt(Math.Ceiling(totalRecords / pageSize))
  37.  
  38. Dim orderBy As String = sidx + " " + sord
  39.  
  40. currentPageRecords = allRecords.OrderBy(Function(m) orderBy).Skip(pageIndex * pageSize).Take(pageSize)
  41.  
  42. Dim jsonData = New With { _
  43. .total = totalPages, _
  44. .page = page, _
  45. .records = totalRecords, _
  46. .rows = New ArrayList _
  47. }
  48.  
  49. For Each member As Models.Member In currentPageRecords
  50. jsonData.rows.Add(New With {.id = member.MemberId, .cell = GenerateCellData(member)})
  51. Next
  52.  
  53. Return Json(jsonData)
  54.  
  55. End Function
  56.  
  57. Create procedure getDataPage1
  58. (@tableName as varchar(100),
  59. @columns as varchar(200),
  60. @columnOrder as varchar(100),
  61. @columnOrderDirection as varchar(20),
  62. @currentPage as int,
  63. @pageSize as int,
  64. @filter as varchar(2000) = '')
  65. AS
  66. BEGIN
  67.  
  68. -- No se debe referenciar a otras columnas Identity (para esos casos se debe hacer un conversion previa antes de hacer el INSERT INTO)
  69. -- Version válida para Sql server 2000, usar funcion ROW_NUMBER para SQL server 2005 o posterior
  70. -- Ejemplos de uso:
  71. -- exec getDataPage1 'DataTarjetasProcesada', 'linea = cast(linea as varchar(100)), Tarjeta, Bloqueo, Saldo', 'Tarjeta', 'desc', 6, 800
  72. -- exec getDataPage1 'Question', 'Id, Votes, Title', 'Title', 'desc', 2, 10
  73.  
  74.  
  75.  
  76. set nocount on
  77.  
  78. declare @query as nvarchar(1000)
  79.  
  80. -- Paso 1: se numera el listado
  81. set @query = 'Select Identifier = Identity(int, 1, 1), ' + @columns +
  82. ' into #temp ' +
  83. ' from ' + @tableName +
  84. case when @filter = '' then '' else ' where ' + @filter end +
  85. ' Order By ' + @columnOrder + ' ' + @columnOrderDirection
  86. -- Paso 2: se toma la página de consulta
  87. +
  88. ' select ' + @columns + ' from #temp '+
  89. ' where Identifier between ' + cast( @pageSize * (@currentPage -1) + 1 as varchar(15)) +
  90. ' and '+ cast (@pageSize*( @currentPage ) as varchar (15))
  91.  
  92. EXECUTE sp_executesql @query
  93.  
  94. set nocount off
  95. END
  96.  
  97. Function DynamicGridData(ByVal sidx As String, ByVal sord As String, ByVal page As Integer, ByVal rows As Integer) As ActionResult
  98. Dim context As New MvcTestApplication.modelDataContext
  99. Dim pageIndex As Integer = Convert.ToInt32(page) - 1
  100. Dim pageSize As Integer = rows
  101. Dim totalRecords As Integer = context.Questions.Count()
  102. Dim totalPages As Integer = Math.Ceiling(CDec(totalRecords) / CDec(pageSize))
  103.  
  104. ' Establecemos la función de ordenación dependiendo del valor del
  105. ' parámetro "sidx", que es el campo de orden actual
  106. ' Establecemos si se trata de orden ascendente o descendente, en
  107. ' función del parámetro "sord", que puede valer "asc" o "desc"
  108.  
  109. Dim results As IMultipleResults = context.getDataPage1("Question", "Id, Votes, Title", sidx, sord, page, pageSize)
  110.  
  111. Dim questions = results.GetResult(Of Question)()
  112.  
  113. Dim jsonData = New With { _
  114. .total = totalPages, _
  115. .page = page, _
  116. .records = totalRecords, _
  117. .rows = (From question In questions _
  118. Select New With _
  119. { _
  120. .i = question.Id, _
  121. .cell = New String() {question.Id.ToString(), question.Votes.ToString(), question.Title} _
  122. } _
  123. ).ToArray() _
  124. }
  125.  
  126. Return Json(jsonData)
  127.  
  128. End Function
  129.  
  130. Function MemberData(
  131. ByVal sidx As String,
  132. ByVal sord As String,
  133. ByVal page As Integer,
  134. ByVal rows As Integer) As JsonResult
  135.  
  136. Dim allRecords As IQueryable(Of Models.Member) =
  137. Me.MemberRepository.FindAllMembers
  138.  
  139. Dim currentPageRecords As IQueryable(Of Models.Member)
  140. Dim pageIndex As Integer = page - 1
  141. Dim pageSize As Integer = rows
  142. Dim totalRecords As Integer = allRecords.Count
  143. Dim totalPages As Integer = CInt(Math.Ceiling(totalRecords / pageSize))
  144.  
  145. Dim orderBy As String = sidx + " " + sord
  146.  
  147. currentPageRecords = allRecords.OrderBy(Function(m) orderBy).Skip(
  148. pageIndex * pageSize).Take(pageSize)
  149.  
  150. Dim jsonData = New With { _
  151. .total = totalPages, _
  152. .page = page, _
  153. .records = totalRecords, _
  154. .rows = New ArrayList _
  155. }
  156.  
  157. For Each member As Models.Member In currentPageRecords
  158. jsonData.rows.Add(
  159. New With {.id = member.MemberId, .cell = GenerateCellData(member)})
  160. Next
  161.  
  162. Return Json(jsonData)
  163.  
  164. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement