1

I am working on a team site inside our on-premises farm 2013. and i have add a new "Discussion Board" list, then i edit the home page, and i add a new App part which represent the new "Discussion Board" list. and i chose to show the "Recent" view, as follow:-

enter image description here

now seems the Recent view will sort the items based on their last modified date, as follow:-

  1. if a discussion item got a new reply, it will be shown first.
  2. or if a new discussion item has been created it will also be shown first.

But our customer asked us if there is a way to force some items to always be shown on Top inside the Recent view.. as these announcements are important announcements, and they want them to always appear on top.. So not sure what are the possible appraochies to achieve this? now one possible appraoch is to create a new Discussion board list and add another app part which contain the important announcement items.. but my question is how i can do this within the same announcement list?

2

There is a way but it's take some tinkering and might break something related to the list so this is without any warranties.

Create a new Discussion Board and create a new column of the type Yes/No and call it something like Sticky/Important. Set the default value to No.

Open the site where the Discussion Board list exist in SharePoint Designer and navigate to Lists and Libraries and find the Discussion list that you created and select Add new view. Call it something like Admin or anything that you like. Do not set it as default view.

Now back in SharePoint, select the view you created and add the column you added in the first step and add it to the view and then add the column Edit (link to edit item). Scroll down to the Style section and choose Basic Table. This view is where you will be able to change the name for the discussion or make it sticky or not.

Save the view and then go back to SharePoint Designer, and look at the views, the default view for your discussion board should be called Subject. Click on the view and select to edit in Advanced Mode.

On line 33, there should be the listview GUID and some properties. Find the property called ReadOnly and change the value from FALSE to TRUE. Save the update in SPD and head back to SharePoint. Now you should be able to edit the view Subject, here you will change the sort order to first order by your column from the first step (Sticky) and select to Show the items in descending order.

Save the change to the view and create some discussions as a test. Check the Sticky checkbox for one of the discussions and they should now appear on top.

This is my result. To the left is my default view on the discussion board, and the right is the custom view (Admin) that i created where you can see the "Sticky" discussion where created before several newer discussions.

enter image description here

But as i said, this is pure tinkering and might break, so test it thoroughly before you actually decide to implement it to your customer.

  • thanks for ur effort, But i always prevent doing too much customization to SP unless i am using the supported paths ... now i was thinking of this appraoch:- to benefit from the "Mark as Featured" option which we can set for the discussion items, then if users want to show the discussion items on top they can mark it as featured, and i can add another app part and set its defualt view as "Featured".. so inside the page i will have 2 app parts, one will show the featured discussion ONLY and the other will show the usual Recent. – john Gu Aug 31 '17 at 14:57
  • but currently when i tried doing so i faced these 2 issues; 1) i can not find a way to set the defualt view for the first app part as "Featured" 2) second problem is that on the second app part it will still show the feature discussions as i can not exclude them !.. so not sure if i can fix these 2 issues? – john Gu Aug 31 '17 at 14:58
  • @johnG Discussion board is using a custom script to render/work so i think you will have to look into that file to see how it actually work. i think it was called something like discussion.board.js and can be found using F12 developer tools. – Christoffer Sep 1 '17 at 6:30

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.