سلام دوستان خسته نباشید
بنده توسط ویدیو آموزشی که در همین سایت توسط آقای ایمان مدائنی ساخته شده صفحه اول که حاوی کل مطالب هست رو صفحه بندی کردم و به درستی کار می کند
برای صفحه بندی مطالب بر اساس موضوع من کد رو تغییر دادم اما به مشکل برخورد کردم
که درواقع تداخل بین ورودی های کنترولر پیش میاد
کنترلر من:
public class CategoryController : Controller { // GET: Category myEntities db =new myEntities(); public ActionResult Index(int id, int page = 1) { //Skip //Take var pg = (from p in db.Posts where p.PostGroupsID == id select p); int skip = (page - 1) * 3; int Count = pg.Count(); ViewBag.PageID = page; ViewBag.PageCount = Count / 3; var list = pg.OrderBy(p => p.PostID).Skip(skip).Take(3).ToList(); return View(list); }
و در قسمت ویو:
<div class="row"> @foreach (var item in Model) { <div class="col-md-4"> <div class="text-center FontMedad"> <div class="thumbnail "> <img data-src="holder.js/100%x200" alt="100%x200" src="@item.PostImageTumbnailURL" data-holder-rendered="true" style="height: 200px; width: 100%; display: block;"> <div class="caption"> <h3>@item.PostTitle</h3> <p>@item.PostContentSummary</p> <p> <a href="#" class="btn btn-primary" role="button">Button</a> </p> </div> </div> </div> </div> } </div> <div class="row text-center"> <nav> <ul class="pagination"> <li class="disabled"><a aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li> @for (int i = 1; i <= (ViewBag.PageCount + 1); i++) { <li class="@(((int) ViewBag.PageID == i) ? "active" : "") FontMedad"><a id="links" href="/category/index/@i">@i<span class="sr-only">(current)</span></a></li> } <li><a aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li> </ul> </nav> </div>
حالا مشکل من اینجاست که زمانی روی دکمه های صفحه بندی که به صورت 12344... هست کلیک میکنم به حای اینکه محتوای مربوط به اون صفحه رو بیارد ، GroupID رو عوض میکنه
ممنون میشم راهنمایی بفرمایید
شما باید در A صفحه بندی بعد از index کد گروه و بعد به صورت کوئری استرینگ شماره صفحه را پاس بدهید
میشه یک مقدار بیشتر توضیح بدید ؟
id ورودی متد را با viewbag به صفحه بفرستید
مثلا viewbag,.id=id;
سپس قسمت صفحه بندی را به شکل زیر تغییر دهید
<nav> <ul class="pagination"> <li class="disabled"><a aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li> @for (int i = 1; i <= (ViewBag.PageCount + 1); i++) { <li class="@(((int) ViewBag.PageID == i) ? "active" : "") FontMedad"><a id="links" href="/category/index/@Viewbag,Id?PageID=@i">@i<span class="sr-only">(current)</span></a></li> } <li><a aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li> </ul> </nav>
دستشما دردنکنه عالی ، درست شد
سلام آقای مدائنی ببخشید مزاحم میشم
من الان به یک مشکل برخوردم
الان دسته بندی و صفحه بندی درست شده مثلا url به صورت زیر دی میاد
Category/Index/1?PageID=1
Category/Index/1?PageID=2
...
ولی در نمایش فقط همون پیج اول رو نمایش میده
الان همه چی بنظر درست میاد ولی نمی دونم چرا کار نمی کنه
شما باید بنویسید page نه PageID
حق با شماست ! اصلا به متغییر ورودی توجه نکرم !
یک دنیا ممنون
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)