pagination working
(TODO: check for remaining pages)
This commit is contained in:
@@ -54,17 +54,17 @@ namespace StudentHouseDashboard.Repositories
|
|||||||
{
|
{
|
||||||
List<Announcement> announcements = new List<Announcement>();
|
List<Announcement> announcements = new List<Announcement>();
|
||||||
UserManager userManager = new UserManager();
|
UserManager userManager = new UserManager();
|
||||||
if (c == null)
|
if (c == null || c < 0)
|
||||||
{
|
{
|
||||||
c = 10;
|
c = 10;
|
||||||
}
|
}
|
||||||
if (p == null)
|
if (p == null || p < 0)
|
||||||
{
|
{
|
||||||
p = 0;
|
p = 0;
|
||||||
}
|
}
|
||||||
using (SqlConnection conn = CreateConnection())
|
using (SqlConnection conn = CreateConnection())
|
||||||
{
|
{
|
||||||
string sql = "SELECT TOP(@count) * FROM Users WHERE ID > @start;";
|
string sql = "SELECT * FROM Announcements ORDER BY ID OFFSET @start ROWS FETCH NEXT @count ROWS ONLY;";
|
||||||
SqlCommand sqlCommand = new SqlCommand(sql, conn);
|
SqlCommand sqlCommand = new SqlCommand(sql, conn);
|
||||||
sqlCommand.Parameters.AddWithValue("@start", p * c);
|
sqlCommand.Parameters.AddWithValue("@start", p * c);
|
||||||
sqlCommand.Parameters.AddWithValue("@count", c);
|
sqlCommand.Parameters.AddWithValue("@count", c);
|
||||||
|
@@ -73,17 +73,17 @@ namespace StudentHouseDashboard.Repositories
|
|||||||
public List<User> GetUsersByPage(int? p, int? c)
|
public List<User> GetUsersByPage(int? p, int? c)
|
||||||
{
|
{
|
||||||
List<User> users = new List<User>();
|
List<User> users = new List<User>();
|
||||||
if (c == null)
|
if (c == null || c < 0)
|
||||||
{
|
{
|
||||||
c = 0;
|
c = 10;
|
||||||
}
|
}
|
||||||
if (p == null)
|
if (p == null || p < 0)
|
||||||
{
|
{
|
||||||
p = 0;
|
p = 0;
|
||||||
}
|
}
|
||||||
using (SqlConnection conn = CreateConnection())
|
using (SqlConnection conn = CreateConnection())
|
||||||
{
|
{
|
||||||
string sql = "SELECT TOP(@count) * FROM Users WHERE ID > @start;";
|
string sql = "SELECT * FROM Users ORDER BY ID OFFSET @start ROWS FETCH NEXT @count ROWS ONLY;";
|
||||||
SqlCommand sqlCommand = new SqlCommand(sql, conn);
|
SqlCommand sqlCommand = new SqlCommand(sql, conn);
|
||||||
sqlCommand.Parameters.AddWithValue("@start", p * c);
|
sqlCommand.Parameters.AddWithValue("@start", p * c);
|
||||||
sqlCommand.Parameters.AddWithValue("@count", c);
|
sqlCommand.Parameters.AddWithValue("@count", c);
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Announcements";
|
ViewData["Title"] = "Announcements";
|
||||||
List<User> users = (List<User>)ViewData["users"];
|
List<User> users = (List<User>)ViewData["users"];
|
||||||
|
int currentPage = @Convert.ToInt32(ViewData["page"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@foreach (User user in users)
|
@foreach (User user in users)
|
||||||
@@ -18,16 +19,34 @@
|
|||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
<nav aria-label="Page navigation example">
|
<br />
|
||||||
|
|
||||||
|
<nav aria-label="Page navigation">
|
||||||
<ul class="pagination justify-content-center">
|
<ul class="pagination justify-content-center">
|
||||||
<li class="page-item disabled">
|
@if (currentPage <= 1)
|
||||||
<a class="page-link" href="#" tabindex="-1">Previous</a>
|
{
|
||||||
</li>
|
@: <li class="page-item disabled">
|
||||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
@: <a class="page-link" href="./Announcements?p=@(currentPage - 1)" tabindex="-1">Previous</a>
|
||||||
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
@: </li>
|
||||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
}
|
||||||
<li class="page-item">
|
else
|
||||||
<a class="page-link" href="#">Next</a>
|
{
|
||||||
|
@: <li class="page-item">
|
||||||
|
@: <a class="page-link" href="./Announcements?p=@(currentPage - 1)" tabindex="-1">Previous</a>
|
||||||
|
@: </li>
|
||||||
|
@: <li class="page-item"><a class="page-link" href="./Announcements?p=@(currentPage - 1)">@(currentPage - 1)</a></li>
|
||||||
|
}
|
||||||
|
<li class="page-item"><a class="page-link">@currentPage</a></li>
|
||||||
|
@if (users.Count == 0)
|
||||||
|
{
|
||||||
|
@: <li class="page-item disabled">
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@: <li class="page-item"><a class="page-link" href="./Announcements?p=@(currentPage + 1)">@(currentPage + 1)</a></li>
|
||||||
|
@: <li class="page-item">
|
||||||
|
}
|
||||||
|
<a class="page-link" href="./Announcements?p=@(currentPage + 1)">Next</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
@@ -11,7 +11,11 @@ namespace WebApp.Pages
|
|||||||
public void OnGet(int? p, int? c)
|
public void OnGet(int? p, int? c)
|
||||||
{
|
{
|
||||||
UserManager = new UserManager();
|
UserManager = new UserManager();
|
||||||
ViewData.Add("users", UserManager.GetUsersByPage(p, c));
|
if (p == null || p < 1)
|
||||||
|
{
|
||||||
|
p = 1;
|
||||||
|
}
|
||||||
|
ViewData.Add("users", UserManager.GetUsersByPage(p - 1, c));
|
||||||
ViewData.Add("page", p);
|
ViewData.Add("page", p);
|
||||||
ViewData.Add("allCount", UserManager.GetAllUsers().Count());
|
ViewData.Add("allCount", UserManager.GetAllUsers().Count());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user