Search code examples
jquerysharepoint-2010spservices

How do I get the Full URL from SPListItem (curren item)?


This is my code, but i don't know which is the field for url. Can I get url with a different way?

var f = "<ViewFields>"+
                '<FieldRef Name="Title"/>'+
                '<FieldRef Name="LinkFilenameNoMenu"/>'+
                '<FieldRef Name="Created"/>'+
            "</ViewFields>";

Solution

  • It is very easy, but It was hard to find.

    var f = "<ViewFields>"+
                    '<FieldRef Name="ID"/>'+
                    '<FieldRef Name="Title"/>'+
                    '<FieldRef Name="LinkFilenameNoMenu"/>'+
                    '<FieldRef Name="Created"/>'+
                    '<FieldRef Name="EncodedAbsUrl"/>'+
                "</ViewFields>";
    $().SPServices({
    operation: "GetListItems",
    async: false,
    listName: list,
    CAMLViewFields: f,
    CAMLLimit: l,
    CAMLQuery: q, 
    
    
    
    completefunc: function (xData, Status) {
    
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
    
    
    
          var url = $(this).attr("ows_EncodedAbsUrl")
    
        });
      }
    });
    

    It works in C# code, you can use the ows_EncodedAbsUrl metadata value:

    using (SPSite site = new SPSite(webUrl))
    {
       using (SPWeb web = site.OpenWeb())
       {
           SPList list = web.Lists["Shared Documents"];
           SPListItem item = list.Items[0];
           string itemUrl = item["ows_EncodedAbsUrl"].ToString();
       }
    }