Loading...

RE: Passing Session values from a qSiListView to a qListForm

RE: Passing Session values from a qSiListView to a qListForm

#5317
Anonymous
Anonymous
Participant

Using qListForm's DisplayFields "Consume a value from Session" type, you should be able to handle a Session set by a SI Web Part, e.g, qSIListView, though this was not by design.

By design, when a qListForm Display Field is set to "Consume a value from Session", it expects the value coming from another Web Part that is on the site and connect to a specific List, thus the requirement for specifying Site Url and List Name property along with the Session name.

<DisplayFields>

  <Sessions>

    <Session Name="SISession" ListName="Tasks" SiteUrl="." />

  </Sessions>

  <Fields ContentType="Task">

    <Field Name="Title" ContainerID="Frist" />

    <Field Name="CompanyName" ConsumeSessionDisplayFieldName="CompanyName" ConsumeSessionName="SISession" />

  </Fields>

</DisplayFields>

To work around with Session set by a SI Web Part, where you do not have List Name as it connects to external data source, I have found that you can get around with the following steps:

1. Add a "Single Line of Text" or other type of field to the underlying List that qListForm is using. This will be the receiving field that holds the value consumed from the Session set by another SI Web Part. I will make the field name identical with the source name, for example, I am getting "CompanyName" from my Web services call in another qSIListView Web Part.

2. Define DisplayFields in qListForm and include the new field, set it to "Consume a value from Session" and give the Session Name that will match the Session Name you set in the source web part. In this case, I will set it the same value as the "Set Session Name" property of my qSIListView's Catalog property.

3. Then specify a valid Site Url and List Name just to make sure it points to a valid List. This is tricky as it really does not need but we have to work around with the limitation on the original design.

4. Make sure you source page is configured with the right Session name and you should get this work.