2012-11-09 44 views
5

Tôi gặp sự cố khi sử dụng kiểu dữ liệu mặc định umbraco "liên kết có liên quan". Vấn đề của tôi là tôi muốn lặp lại con/tùy chọn của tài sản. Tôi đã nhìn thấy ví dụ bằng cách sử dụng xml và xslt nhưng tôi tự hỏi nếu có bất kỳ possibilty sử dụng tinh khiết C# bên trong một điều khiển người dùng.Cách lặp lại "Liên kết có Liên quan" bằng C#

Something như thế này (Nhưng một biến thể làm việc)

Node node = new Node(Node.getCurrentNodeId()); 
var linklist = node.GetProperty("link"); 
if (node.GetProperty("link") != null) 
{ 
    foreach (var item in linklist) 
    { 
     //get each item here 
    } 
} 

Cảm ơn!

(Tôi cũng đã đăng câu hỏi here)

Trả lời

0

Ok, vì vậy đây là những gì tôi đã làm để làm cho nó làm việc. Tôi đã sử dụng câu trả lời của Jorge nhưng thay đổi nó một chút, rất ít. Bằng sự giúp đỡ của tìm kiếm trong umbraco.config đây là cách tôi đã làm

@using umbraco.MacroEngines 
@using umbraco.NodeFactory; 
@{ 
var root = Model; 
var links = root.link; 
if (links == null) 
{ 
    return; 
} 
foreach(var item in links) 
{ 
    DynamicNode linkNode = Model.NodeById(@item.link); 
    Response.Redirect(@linkNode.Url); 
    break; 
} 
} 

Tôi nghĩ rằng tôi có thể đã sử dụng một chút asnwer Derek trong một usercontrol. Bởi vì tôi có nghĩa là tôi có thể đã chọn tài sản như bình thường và XmlTextReader được sử dụng để đọc xml-một phần của tài sản được lựa chọn. Cảm ơn bạn đã halp của bạn!

8

Tôi nghĩ rằng bạn sẽ có thể làm điều gì đó như thế này (Razor)

@using umbraco.MacroEngines 
@inherits DynamicNodeContext 
@{ 
    var root = Model.AncestorOrSelf(); 
    var links = root.FooterLinks.link; 
    <ul class="nav nav-pills"> 
    <li><span>@Dictionary.RelatedLinks</span></li> 
    @foreach (var item in links) 
    { 
     var url = item.type == "internal" ? Library.NodeById(item.link).Url : item.link; 
     var rel = item.type == "external" ? " rel=\"external\"" : string.Empty; 
     var title = item.title; 
     <li><a href="@url"@Html.Raw(rel)>@title</a></li> 
    } 
    </ul> 
} 
+0

cảm ơn. tôi sẽ cố gắng thứ hai này :-) – Andreas

Các vấn đề liên quan