5

I have a page, where holds header, bread crumb, some static content and a dynamic table (data coming from separate database and it uses entity framework for data manipulation) and then footer. We are using DD4T with MVC 4.

Now, i have schema/component for all except the dynamic table part. Now, if the requirement is to hold maximum data in tridion what will be the best approach for holding the dyanamic table in tridion?

Is it better not to have nothing for the dymanic part n tridion and having a seperate partial view which renders the dynamic content in web application?

Or along with Header/Breadcrumb/Static/Fotter Component presentations i can have a component presentation (probably blank) for the dynamic table? What structure i should follow then?

Please suggest any ideas and your valuable remarks.

Thanks in advance.

  • Are you trying to expose this data to editors within the GUI to make it easier to manage or just render it on the front-end website? – Neil May 22 '14 at 8:54
  • No, just rendering it on fornt end website. But, the requiremnt is to have maximum information in Tridion.Please suggest – Anupam Baksi May 22 '14 at 9:04
  • I don't quite understand "maximum information"? You mean you'd like a component presentation to represent this dynamic table on the page? – Neil May 22 '14 at 9:07
  • I mean for the dynamic table whatever information i can store, and i think i have an answer below where i can store like table headers, many thanks for your inpuits as well. – Anupam Baksi May 22 '14 at 13:21
5

If I understand your question well, you want the editors to be able to create a page where they add a placeholder component presentation to say : I want the dynamic table to be rendered "here" (between other component presentations).

You can achieve this easily with DD4T: First, you'll need to create a new component template, and in the component template metadata, specify the name of the controller and action you wish to execute to render the table (the metadata field names should be called "controller" and "action").

This will allow the dd4t componentpresentationrenderer to call the correct action to output your table.

Next, you just need to create this controller and action, and wire up the necessary entity framework/DB querying/... code to render the dynamic table, and you're done.

Depending on your requirements, you could place some of the properties of that table in the component, so in your action you could get these properties from the component, and use it for rendering your dynamic table (example header titles of the table, sorting, paging options,...).

To allow this, you should have your controller inherit from TridionControllerBase. In your action, you could then call the function GetComponentPresentation, and that way, you have access to all of your component fields and metadata fields.

I hope this answers your question.

  • 1
    Just wanted to add that I've seen this done with Multimedia Components, where the metadata of the MM component contains the properties you want to use in the table/dynamic element, and the MM component image is a thumbnail pic of the element you're adding (in your case likely a simplified picture of a table). Since Experience Manager shows the image thumbnail in the slide-in navigation, it makes it very easy for editors to recognize the "widget type" when adding it to a page. – Nuno Linhares May 22 '14 at 12:42
  • Thanks for the explanation to both. Now, i have a clear idea what properties i can store in tridion (in my case). Many Thanks again. – Anupam Baksi May 22 '14 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.