问题
How do you link a form field to a choicebox selection so that the field's value is set by the information referenced by the ID of the choicebox selection? I have a choicebox in a custom list form which is bound to a "Client" list which contains client names, IDs, reference numbers, addresses, etc. The choicebox displays the client name and has the selected value set to ID. I would then like to query the Client list by the selected ID to populate form fields with Client Name, Client Address, Client Phone, etc. Is there a way to do this without using custom code? I am using SharePoint 2010, SharePoint Designer 2010 and InfoPath for the forms.
回答1:
I have a feeling this is not supported, but I was able to get this working by creating fields as follows in the schema.xml of my custom list template:
<Field ID="{AB09A2D6-EBD4-4511-AE91-A8C54DC8442F}"
Type="Lookup"
Name="CustomItemIdLookup"
DisplayName="Client"
List="$Resources:core,lists_Folder;/Client"
ShowField="Title"
Hidden="FALSE"
Required="TRUE"
StaticName="CustomItemIdLookup">
</Field>
<Field ID="{E558933C-A03B-4932-85C9-6A786396AA78}"
Type="Lookup"
Name="CustomClientNameLookup"
DisplayName="Client Name"
List="$Resources:core,lists_Folder;/Client"
ShowField="CustomClientName"
Hidden="FALSE"
JoinColName="tp_ID"
JoinRowOrdinal="0"
JoinType="INNER"
FieldRef="CustomItemIdLookup"
ReadOnly="FALSE"
ShowInNewForm="FALSE"
ShowInEditForm="FALSE">
</Field>
<Field ID="{5292CB52-80C7-4AFA-BA3E-93FDF22B37E3}"
Type="Lookup"
Name="CustomClientAddressLookup"
DisplayName="Client Address"
List="$Resources:core,lists_Folder;/Client"
ShowField="CustomClientAddress"
Hidden="FALSE"
JoinColName="tp_ID"
JoinRowOrdinal="0"
JoinType="INNER"
FieldRef="CustomItemIdLookup"
ReadOnly="FALSE"
ShowInNewForm="FALSE"
ShowInEditForm="FALSE">
</Field>
<Field ID="{B3E22803-9A4B-4E7E-B05F-82221C182735}"
Type="Lookup"
Name="CustomClientPhoneLookup"
DisplayName="Client Phone"
List="$Resources:core,lists_Folder;/Client"
ShowField="CustomClientPhone"
Hidden="FALSE"
JoinColName="tp_ID"
JoinRowOrdinal="0"
JoinType="INNER"
FieldRef="CustomItemIdLookup"
ReadOnly="FALSE"
ShowInNewForm="FALSE"
ShowInEditForm="FALSE">
</Field>
Note, Client Name, Client Address, Client Phone will not be editable and rich text/multiline fields do not work.
来源:https://stackoverflow.com/questions/2443551/sharepoint-2010-set-field-value-from-query-triggered-by-choice-box-selection