SharePoint 2013 KnockoutJS Lookup columns - sharepoint

I have a basic knockoutjs project loading data from a SharePoint 2013 list scenario. Getting data and displaying data is easy, the problem that I'm running into is on the edit mode displaying the proper control. Everything should not be a textbox. This means the people picker control to dropdownmenus to calendar controls.
MSFT has some pretty good documentation on using the client side people picker control here"http://msdn.microsoft.com/en-us/library/office/jj713593.aspx
The problem that I have is calling this control inside my viewmodel.
Setting the value of the control doesn't look difficult courtesy of this blog post: http://www.sharepointcolumn.com/sp2013-setting-people-picker-value-in-newform-aspx/
I attempted to looking into computed values, but that doesn't seem to work. Does anyone have a blog post that I skipped over? The closest related post that I can find: http://yetanothersharepointblog.wordpress.com/2012/12/11/working-with-sharepoint-lookup-columns-in-knockout-js/
Lastly since it seems that I'm the only one doing this, does anyone think that I should not be reinventing the wheel with my forms and should just link each item to the appropriate SharePoint list item in edit or display view? I suppose that would be easier.

From a SharePoint Professional to another, I would highly recommend you to do that.
Just redirect the user to the item edit/display item page an let SharePoint take the leash of how to handle UI form elements.
Because, assume that you implement your custom form, what if the user decides to add one more site column to the list? Will you update your code to support another field?
From my personal experience with the beast I've come to the conclusion that structural implementation over already existent functionality tends to go wrong.
Also, if you have some kind of listing of items custom made and you want to provide editing, try to do something opening a pretty SP.UI.ModalDialog, its elegant and you use the sharepoint to do the work for you.
But it's just an advise.

Related

One custom display form for all the lists

Good day to you. I am newbie in SharePoint 2013 so please bear with me. I have created around 15 lists in my website each containing same columns but different data (they differ semantically).
I am aware that we can change the default view, edit and display form for each list by creating new form in SharePoint Designer 2013. This seems like a very bad approach as far as the maintenance is concerned. I know my lists are exactly the same so why do I have to create same 15 display forms for each of the lists?
Is there a way to create one custom Display form (may be in a central location, i don't know i am just thinking :P ) for all the lists? Is there a way to tell a list to use a specific display form? Any help will be highly appreciated. Thanks.
If i understand your question correctly, you have 15 lists with same set of columns. You want to change the display/look of the form. All 15 lists should have same look and feel right!! If yes, then why don't you try with some html, javascript solution. Since you are in sharepoint 2013, javascript support for solutions is very good like rest queries. You can use SPServices also.
If you want to to add data to the list whenever you click on the "New Item" link in the list then hijack this link such that it should navigate to your custom form. Pass your list name as query parameter. Whenever user is saving the form, get the list name from the query parameter and save the data to that list.
There could be another ways also to achieve the solution with html and javascript.
Useful links:
Microsoft, Microsoft, SPServices
Sam I think you can create a custom content type and create custom display form for your content type. Enable the content type in each of your lists so automatically this customized form would be available.
The advantage of this approach is that suppose if you need one more list after some time you can just add this content type and your form would be available into the new list as well.
The approach is explained in the link below.
http://blogs.msdn.com/b/varun_malhotra/archive/2009/06/06/define-custom-new-edit-display-forms-for-content-types.aspx
Check this one also
https://joshmccarty.com/2011/02/sharepoint-custom-list-with-custom-content-types-and-custom-display-forms/
Just wanted to write the solution which I implemented as it might help others as well. (Thanks Hiren and Mihir for your valuable inputs)
I had 15 lists and I was showing the data to the user using content search web part with custom display template. All of the lists were using the same display template so I made a new page just to show the item details. In the display template I pointed the item URL (i hijacked the list name and the current item id) to my new page and displayed the item. Let me know if anyone is interested in the whole solution or further elaboration is required.

Custom announcment board in Sharepoint 2007

First off, please bear with me. My question concerns more specifically with custom lists, custom code inside Sharepoint 2007. My experience is more with applications that work outside but access data (Client Object Model) in Sharepoint 2010.
At work I was recently tasked with the following request:
Create a custom announcement board where everyone can create an announcement but only admins and creators can edit it.
The main list page was going to provide a summary of the details, title and an icon that depicts the type of announcement (gif of a baby if birth announcement).
Upon clicking on an announcement, a detailed page containing more detail of the announcement and up to 4 pictures will be displayed.
When entering data the pictures can only be a maximum size.
Here is how I was going to attack this. I was going to create a Custom List that allowed for the addition of Picture columns and all the other columns I required. I would then modify the NewForm, EditForm and DispForm pages to meet our requirements. Picture size would be controlled through Javascript of Jquery on the page. My question to you experts out there is does this sound feasible? Is there a better way?
Thank you for any help
I wouldn't edit the list forms - not in this case at least. One way you could build this would be as a publishing site. You can create custom page layouts to suit the design of the announcements. There would be a bit of work to build it into a polished solution. Depends on how far you want to go.

Sharepoint 2010 - Datasheet view and 3 linked lists

I've got a tricky situation I'm trying to determine the best way to solve. I'm a VS developer who is learning SharePoint so it's a little frustrating to me when what I am trying to accomplish could easily be done with code and a db.
I have three lists, a parent and two children list that are linked through lookup columns. The client actually wanted everything in one list but due to SharePoint column type limitations I had to split the data into the three lists, there are over 300 fields. The client wants to see all the lists together in one view and be able to filter and edit groups of items.
I have successfully created a new data source linking the lists and can display that on one of my pages to view. After some research however I have learned that I can't create a datasheet view from this linked view due to limitations in the Office componets that SP uses. Which makes sense.
The business need is for the client to filter the three lists based on criteria they select from either list A AND list B and list C to get a group of items, they make the updates and save the changes back to the 3 lists. They prefer to do this in datasheet view because this mimics the excel spreadsheet that they are currently using that this website will replace. They will potentially be updating between 1-30 items at a time using this, which is why they prefer the drag and copy functionality.
I was thinking of two options: trying to create some kind of custom web part that has a gridview of all the columns in edit mode that they can filter down to their items and make their changes. Then I would have to loop through the fields and make updates programmatically. I also saw on this site jQuery.sheet, that looks like it may be a good solution if I go this route instead of gridview.
Or have a modal window with the columns listed, have the user select what they want to filter to, then redirect to a page that shows the three lists in their own DSVs. The user would have to make updates in the three separate views. Then I would use workflows to synchronize the lists after they had made their changes.
I always end up trying to do things programmatically since I am still largely unfamiliar with SP and only seem to hit its limitations instead of its strengths. Has anyone tried to do something similar to this? Or do you have any suggestions as to the best way to accomplish this? Best practices? I appreciate all thoughts and comments! FYI I've also posted this on the MS SP forums as well to cast a wider net...
Thanks,
Sabrina
In this case, you are better off going with a custom solution. A webpart would be an excellent choice for delivering your custom interface.
A dataview webpart will do the job, but if you feel comfortable with the jQuery solution it would make for a nicer interface.
In your code, treat the lists as you would a database and isolate it from the logic and interface code within the webpart.

A minimal code webpart that displays a single picked item from a list

I'm not sure this is possible, but figured I´d give it a shot. First a few pre-requeistes and environment details:
I´m using SharePoint 2010, SharePoint
Designer 2010, VS 2010
I want to create as little code as
possible, preferably, create it all via UI or Designer
use out of the box components as much
as possible
Here is What I want to do:
Have a custom list with custom columns (easy part)
Create a webpart with an edit interface to select a single item from this list
This same webpart when visible would display the contents of this selected item in a given layout
I know I can do this creating a custom web part and code it all from scratch, I guess my main question is, is there a way to do this with less code and more out of the box components in SP2010. If not, I guess I'm left with lots of C# code.
Any tips, or pointers in this direction will be most welcome. Thanks in advance.
I think what you're looking for is the Data Form Web Part.
Unfortunately, I can't find any good tutorials for 2010, but hopefully the steps should be similar to setting it up in 2007.
Thanks all for the update. In the end, i had to create quite a bit of code to get this to work:
created a web part that enumerates
the content type,
creates a light box that has a picker
then stores the ID of the content in a column
Not the easiest way,but the only way I could get it working. Thanks again!

How to tie a dropdown list to a gridview in Sharepoint 2007?

This should be a really really simple thing, but for some reason it is just eluding me.
I want a Sharepoint page which will have a drop down list that is tied to a database lookup table.
When an item is selected and they click a GO button, I want it to update a gridview that is also on the page.
I'm looking for a simple how to - while assuming I'm a sharepoint idiot. BTW, I am using the Microsoft Office Sharepoint Designer.
Thanks,
Edit:
My need is actually very simple. I want to filter the results of a query using a drop down list. This used to be called a master - detail relationship.
For example, my regular data has school name, application name, and how long the application was running. Because there could be a hundred applications per school and there are 60+ schools, I only want to show one schools information at a time.
So, I want to put a drop down list at the top of the screen which contains the list of schools. When one is selected, the gridview should be updated to reflect the new schools information.
Chris.
I currently use a drop down tied to one sharepoint list to filter a dataview of another sharepoint List.
The instructions are here:
http://blogs.msdn.com/sharepointdesigner/archive/2007/03/05/asp-net-controls-filter-the-data-view.aspx
I'm not exactly sure of the specific needs here, but it seems that you are trying to stretch a bit beyond what Sharepoint Designer is well suited to. To look up data, you do have access via the dataview web part, which is here:
http://office.microsoft.com/en-us/sharepointdesigner/HA100948041033.aspx
However your filtering needs may prevent you from using this. If you want to do it .net without knowing too much about MOSS, you can use the "son of smartpart" (google it) which allows you to host standard .net user controls in webparts.
Hope this helps!

Resources