Child pages
  • Allow grid data detection without DB query [5.3.0-B1]
Skip to end of metadata
Go to start of metadata

One of common tasks in In-Portal is to display data from database. However we also need to account for case, when no data was selected and different text needs to be shown to user. This can be achieved using following template code:

<inp2:m_DefineElement name="topic_element">
	<li><inp2:Field name="Title"/></li>
</inp2:m_DefineElement>
 
<inp2:m_if check="topic_TotalRecords"> <!-- DB query #1 here -->
	<ul>
		<inp2:topic_PrintList render_as="topic_element"/> <!-- DB query #2 here -->
	</ul>
<inp2:m_else/>
	No Topics
</inp2:m_if>

From the above code it's obvious that doing 2 DB queries isn't necessary because selected record count (0 or more) is enough to determine if there is enough data to be displayed.

Solution

  1. in "kDBList::GetSelectedCount" add call to "kDBList::Query" method if list wasn't queried (like it's done in "kDBList::GetRecordsCount")
  2. create "kDBTagProcessor::SelectedRecords" tag, that will call above method
  3. add "selected" type to "kDBTagProcessor::GridInfo" tag to allow retrieval of selected record count

Related Tasks

INP-1551 - Getting issue details... STATUS