Thursday, May 19, 2011

Separating radio button selections into another row in SharePoint

Came across an interesting problem when an user requirement is to separate the radio buttons into two different rows in a form. Plus attaching some click events to both selections. It took me about 15 mins or so to figure out but I thought it was interesting. SharePoint renders the radio buttons together as something like this:

<SharePoint:FormField runat="server" id="ff2{$Pos}" controlmode="New" fieldname="No_x0020_Knowledge" __designer:bind="{ddwrt:DataBind('i',concat('ff2',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@No_x0020_Knowledge')}" />

You can't simply move one as you would if you are using html. Thankfully, a little jQuery and a little css comes to the rescue. The solution is actually a real simple one. BTW, I did tried using just jQuery to move the the 2nd radio button down but the attached click event was lost somehow.

On to the solution. If you have a field with selections 'A' and 'B', you want to move 'B' to the next row, the jQuery line:
$("span[title='B']").addClass('positionB');

of course the css:
.positionB{
position:absolute;
left:23;
top:355;
}

The after effect:

The attached events for each radio button also worked. You would need to update the left and top positions to fit your needs though.

Monday, February 28, 2011

access denied when clicking on an item with read access

Problem: In SharePoint 2007, user sees a list on the home page, the list of items are pull from an ordinary list. User clicks on any item on that list and gets access denied. Checked that authenticated users indeed have read access.

Solution: In the permission level, checked the 'read' permission, make sure the 'view application pages' is checked.

Tuesday, February 8, 2011

User get access denied with Excel services

Even though trusted location was setup in excel services, with the trust children checked.

Turns out the there is a difference between http://url/ and http://url.com/ etc. Trusted location has to be config with both.

Thursday, January 13, 2011

problem: multi text fields don't align on newform

Solution: on list settings, reset the number of lines on one/both fields to another number.

Monday, October 18, 2010

Update topnav "home" tab to contain default.aspx

go to all site settings and update the welcome page to contain default.aspx. view source will show that the site now has home tab as /sites/test/default.aspx.

Thursday, June 17, 2010

SharePoint local breadcrumb not showing

Problem: using the same master page, the local breadcrumb shows on some pages but not other sites/pages.

Upon digging, the no breadcrumb pages are in a folder instead of a doc library. Moving those pages to a doc lib and problem was solved.

Thursday, April 1, 2010

Breadcrumb shows wrong url for a list

Came across this problem when i went in the list settings, the url on the breadcrumb shows the url of the web app instead of the url to the list itself.

Solution: it turns out on the list properties, it's missing the default view page. Go to SharePoint Designer, right click on the list to bring up the properties, under 'Supporting Files' tab, select the 'default view page'.

Friday, February 12, 2010

Workflow showed 'stopped' for some users

I have a SPD workflow with a lookup to assigned to groups. The workflow will send send an email to the group and assign tasks to the gorup etc. For some users (all site col admins, WF runs w/o problems). For normal contributors, the workflow shows stopped after entering a record.

Solution: This is permission related. The user has to be able to see the group memberships. Go to 'site settings' -> 'People and Groups', go to each group and go to Group Settings to switch the 'Who can view the membership of the group?' to Everyone. The workflow will start the next time you enter a record.

Monday, February 8, 2010

Filter between two dates using the DataView and jQuery

This is the second round of filtering between dates in a SharePoint DataView. With this version, you do not need to be using the filters from the Enterprise version. (I am using the Standard version for now so was forced to get this working....)

Step by Step Instructions:
1. Using SPD, create an asp.net page. Add in the web part to be filtered to the page.



2. Add 4 asp.net controls. I named them txtDate1, txtDate2 and alttxtDate1, alttxtDate2. Feel free to choose your own. Note: thanks to the views below, the txtDate1 and txtDate2 asp.net textboxes have to have the AutoPostBack attribute set to true. We will hide the latter two. (Now the reason for the latter two fields: After some digging, the filter takes the dates formatted as yy-mm-dd. We are in the US so we don’t want to display the date like this. Thus the use of alternate fields to pass in for processing, but display we’ll see the good display. >.< )


From Date:

<asp:TextBox runat="server" AutoPostBack="true" id="txtDate1" CssClass="right">
</asp:TextBox>
<asp:TextBox runat="server" id="alttxtDate1" CssClass="invis"/>

To Date:

<asp:TextBox runat="server" id="txtDate2" AutoPostBack="True" CssClass="right"></asp:TextBox>

<asp:TextBox runat="server" id="alttxtDate2" CssClass="invis"/>


3. Select the WebPart and convert it to XSLT dataview. We will filter using the two dates on the dataview.

4. Setup the dataview parameters:



5. Setup the filter on the DataView using the parameters from step 4:



6. Add the jquery stuff to make it work:
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css"
type="text/css" media="all" />

<script type="text/javascript">

if(typeof jQuery=='undefined'){

var jQPath="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/";

document.write('<script src="',jQPath,'jquery.min.js" type="text/javascript"><\/script>');

}

</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>

<SCRIPT type=text/javascript>

$(function() {



$("#txtDate1").datepicker({altField: '#alttxtDate1', altFormat: 'yy-mm-dd'});

$("#txtDate2").datepicker({altField: '#alttxtDate2', altFormat: 'yy-mm-dd'});

});
</SCRIPT>

7. Result:



8. Of course, hide the latter two alt controls:
<style type="text/css">

.invis{

visibility:hidden;

width:30px;

}



</style>

and....Done!

Note: this could be extended to more filters. Just modify the DataView filters criteria....

Friday, August 14, 2009

infopath form quick note

Note: When a form has a dropdown from a reference list in SharePoint, changing the values of the reference list does NOT change the selected values in the existing forms....which is an excellent thing.