It isn't possible to pass parameters to a controller method binding in a Visualforce page. From Controller Methods:
Visualforce markup can use the following types of controller extension and custom controller methods:
- Action
- Getter
- Setter
You could rework typeToRelationships
so that the keys already contain concatenated relationshipType and contact.Id.
Alternatively, you could put the apex:dataList into an apex:component. The component can have multiple apex:attributes defined. This will allow you to pass multiple parameters in.
One small personal crusade. The following is perfectly valid. However, it does contain a large amount of redundancy.
rendered="{!IF(sortedByType==true, true, false)}"
Instead, consider:
rendered="{!sortedByType}"
There is no need to compare a boolean to another boolean or wrap it in an IF statement.