Skip to content

Latest commit

 

History

History
81 lines (57 loc) · 2.71 KB

File metadata and controls

81 lines (57 loc) · 2.71 KB

#Working with Record data

Umbraco Forms includes some helper methods that return dynamic objects, making it easy to output records using razor.

##Available methods The static methods can be found in Umbraco.Forms.Mvc.DynamicObjects.Library

###GetApprovedRecordsFromPage

DynamicRecordList GetApprovedRecordsFromPage(int pageId)

Returns All records with the state set to approved from all forms on the umbraco page with the id = pageId as a DynamicRecordList

###GetApprovedRecordsFromFormOnPage

DynamicRecordList GetApprovedRecordsFromFormOnPage(int pageId, string formId)

Returns All records with the state set to approved from the form with the id = formId on the umbraco page with the id = pageId as a DynamicRecordList

###GetApprovedRecordsFromForm DynamicRecordList GetApprovedRecordsFromForm(string formId) Returns All records with the state set to approved from the form with the ID = formId as a DynamicRecordList ###GetRecordsFromPage

DynamicRecordList GetRecordsFromPage(int pageId)

Returns All records from all forms on the umbraco page with the id = pageId as a DynamicRecordList

###GetRecordsFromFormOnPage

DynamicRecordList GetRecordsFromFormOnPage(int pageId, string formId)

Returns All records from the form with the id = formId on the umbraco page with the id = pageId as a DynamicRecordList

###GetRecordsFromForm

DynamicRecordList GetRecordsFromForm(string formId)

Returns All records from the form with the ID = formId as a DynamicRecordList

##DynamicRecordsList and DynamicRecord As you see all of these methods will return an object of type DynamicRecordList so you can easily iterate trough the DynamicRecord objects.

The properties available on a DynamicRecord are:

DateTime Created
string Form
string Id
string IP
object MemberKey
Dictionary<Guid, RecordField> RecordFields
FormState? State
int UmbracoPageId
DateTime Updated

The access custom form fields you can simply use the dot notation, using the field caption but removing all spaces and non alphanumeric characters.

##Sample razor script (DynamicNode, pre umbraco 6.0.0)

Sample script that is outputting comments using a form created with the default comment form template.

@using Umbraco.Forms.Mvc.DynamicObjects

<ul id="comments">
 @foreach (dynamic record in Library
           .GetApprovedRecordsFromPage(@Model.Id).OrderBy("Created"))
 {
     <li>
          @record.Created.ToString("dd MMMM yyy")
          @if(string.IsNullOrEmpty(record.Website)){
             <strong>@record.Name</strong>
          }
          else{
             <strong>
               <a href="@record.Website" target="_blank">@record.Name</a>
             </strong>
          }
         <span>said</span>
        <p>@record.Comment</p>
     </li>
  }
</ul>