이 작업을 수행하는 방법에는 여러 가지가 있으며, 여기에 간단한 하나입니다. 요약하면 ajax에서 호출하는 "Surface Controller"를 사용하여 DOM을 적절하게 조작하는 것이 좋습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Globalization;
using System.Net;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Configuration;
using System.IO;
using Newtonsoft.Json;
using System.Text;
using Umbraco.Web; // AncestorOrSelf
using Umbraco.Core; // FindIndex
using Umbraco.Core.Models;
namespace MyFunWebsite.SurfaceControllers
{
public class MyFunSCController : Umbraco.Web.Mvc.SurfaceController
{
[System.Web.Mvc.HttpPost]
public ActionResult GetPage() {
// Pick up params
var pageNumber = -1;
if (!int.TryParse(Request.Params["pageNumber"], out pageNumber))
{
pageNumber = -1;
}
var parentNodeId = -1;
if (!int.TryParse(Request.Params["parentNodeId"], out parentNodeId))
{
parentNodeId = -1;
}
if (parentNodeId == -1 || pageNumber == -1)
{
return Content("no - invalid parentNodeId or pageNumber");
}
var itemsPerPage = 10;
var parentNode = Umbraco.TypedContent(parentNodeId);
var nodes = parentNode.Children.Skip(itemsPerPage * pageNumber).Take(itemsPerPage);
ViewBag.specialViewBagInformation = "Fun with Umbraco";
ViewBag.nodes = nodes;
return PartialView("Partials/MyListingOfNodes");
}
}
}
그런 다음 부분보기는 다음과 같이 간다 :
@using Umbraco.Core;
@{
var nodes = (IEnumerable<IPublishedContent>)ViewBag.nodes;
foreach (var node in nodes) {
<div>title: @node.AsDynamic().title</div>
}
}
을 이제 기본 서식 여기
은 샘플 표면 컨트롤러 (나는 ...이 쓸모없는 using이 잔뜩 가지고)입니다 , 이미 가지고있는 것처럼 보이는 부분도이 부분이라고 부를 수 있습니다. 이 템플릿은 페이지 당 개수와 항목을 기반으로 페이지 버튼을 표시해야합니다. 페이지 버튼 실행, 당신이 몇 가지 자바 스크립트와 유사한 실행할 때하지만 기본적으로 : "/ Umbraco/표면 /"컨트롤러를
function GetPage(pageNumber, parendNodeId) {
$.ajax({
type: "POST",
url: "/Umbraco/Surface/MyFunSCController/GetPage/",
data: "pageNumber=" + pageNumber + "&parentNodeId=" + parentNodeId,
cache: false,
dataType: "text",
success: function (result) {
$("#myFunTable").html(result);
},
error: function (result) {
// console.log("Ajax error: " + result);
}
});
}
공지의 URL 아약스 게시물을 당신은이 "Umbraco.Web을 확장 만들 수 있습니다. Mvc.SurfaceController "에 액세스 할 수 있습니다. 아주 아약스 전화에 대한 convinient. 이 javascript는 귀하의 페이지가 다시로드해야하는 것을 막아 주며 클라이언트 측의 일을 유지하면서도 서버 측을 사용하여 원하는 컨텐츠를 얻습니다. 여기에서 많은 기능과 유효성 검사를 추가 할 수 있습니다. 여기
가 페이지 버튼입니다 :
<a href="javascript: void(0);" onclick="GetPage(3, Model.Content.Id)">Page 3</a>
희망이 도움이 Umbraco와 함께 작동, 나는 그것이 매우 강력한 제품 생각합니다.