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>();
|
||||
UserManager userManager = new UserManager();
|
||||
if (c == null)
|
||||
if (c == null || c < 0)
|
||||
{
|
||||
c = 10;
|
||||
}
|
||||
if (p == null)
|
||||
if (p == null || p < 0)
|
||||
{
|
||||
p = 0;
|
||||
}
|
||||
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.Parameters.AddWithValue("@start", p * c);
|
||||
sqlCommand.Parameters.AddWithValue("@count", c);
|
||||
|
@@ -73,17 +73,17 @@ namespace StudentHouseDashboard.Repositories
|
||||
public List<User> GetUsersByPage(int? p, int? c)
|
||||
{
|
||||
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;
|
||||
}
|
||||
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.Parameters.AddWithValue("@start", p * c);
|
||||
sqlCommand.Parameters.AddWithValue("@count", c);
|
||||
|
@@ -4,6 +4,7 @@
|
||||
@{
|
||||
ViewData["Title"] = "Announcements";
|
||||
List<User> users = (List<User>)ViewData["users"];
|
||||
int currentPage = @Convert.ToInt32(ViewData["page"]);
|
||||
}
|
||||
|
||||
@foreach (User user in users)
|
||||
@@ -18,16 +19,34 @@
|
||||
</div>
|
||||
}
|
||||
|
||||
<nav aria-label="Page navigation example">
|
||||
<br />
|
||||
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination justify-content-center">
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#" tabindex="-1">Previous</a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="#">Next</a>
|
||||
@if (currentPage <= 1)
|
||||
{
|
||||
@: <li class="page-item disabled">
|
||||
@: <a class="page-link" href="./Announcements?p=@(currentPage - 1)" tabindex="-1">Previous</a>
|
||||
@: </li>
|
||||
}
|
||||
else
|
||||
{
|
||||
@: <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>
|
||||
</ul>
|
||||
</nav>
|
||||
|
@@ -11,7 +11,11 @@ namespace WebApp.Pages
|
||||
public void OnGet(int? p, int? c)
|
||||
{
|
||||
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("allCount", UserManager.GetAllUsers().Count());
|
||||
}
|
||||
|
Reference in New Issue
Block a user