Caisis Input Controls

From CaisisWiki

(Difference between revisions)
Jump to: navigation, search
(LookupDistinct (string))
Line 78: Line 78:
====LookupDistinct (string)====
====LookupDistinct (string)====
-
Controls filtering of lookup values.
+
Controls filtering of lookup values. The format is "tablename;valuefield;textfield;restriction;order". The query that looks up the Distinct values looks like this: "SELECT DISTINCT ''valuefield'' AS DropDownValue, ''textfield'' AS DropDownText FROM ''tablename'' WHERE ''restrictions'' ORDER BY ''order''".  ''order'' and ''restrictions'' are optional.
====CascadeValuesBasedOn (string)====
====CascadeValuesBasedOn (string)====

Revision as of 17:33, 4 February 2011

Translations: italiano

Contents

About

Caisis Input Controls provide the base for most of the UI controls in the application, which build upon many of the standard .NET controls, such as TextBoxes, TextAreas, CheckBoxes, RadioButton, DropDownList, etc... These controls provide useful Properties which allow for easily modifying and applying various UI elements (calendars, numberpads,icons,descriptions...) with little to no coding.

The Caisis Input Controls also provide additional properties to help associate them with Business Objects. Properties such as Table and Field help associate values of controls to their associated database field names and tables.

Interfaces


ICaisisInputControl

The interface ICaisisInputControl provides commonly used UI elements into helpful properties as well as providing support to handle matching controls to associated [Business Object] Fields. Controls Implementing ICaisisInputControl

  • CaisisTextBox
  • CaisisTextArea
  • CaisisSelect
  • CaisisHidden
  • CaisisCheckBox
  • CaisisComboBox
  • CaisisRadioButton
  • CaisisRadioButtonList
  • CaisisExtendedCheckBoxList
  • CaisisExtendedRadioButtonList

ICaisisLookupControl

The ICaisisLookupControl provide easy access to bind controls to LookupCodes, as defined by the Administrator. There are also additional properties used to generate dynamic lookup codes based on user selected values. Controls Implementing ICaisisLookupControl

  • CaisisSelect
  • CaisisComboBox


Base Properties


By default, all controls that implement the ICaisisInputControl interface, have these properties exposed to be set and retrieved by user code. These properties provide easy access to many of the control's UI elements, as well as database related properties such as Table and Field, which allow for syncing with Business Objects.

Table (string)

The name of the Database Table corresponding to a control.

Field (string)

The name of the Database Table's field corresponding to a control

Value (string)

This is the corresponding "text" value of a derived control. So, for TextBox the Value field refers to the TextBox's value, for TexArea's value, DropDownList, SelectedValue.

Visible (boolean)

The name of the Database Table corresponding to a control.

FieldLabel (string)

The name to display next to the control.

Required (boolean)

Shows if this field is required on data entry forms.

ShowHelpBubble (boolean)

True or False value indicating wheather to show a help description for a control.

HelpDescription (string)

The help description displayed for a control.

ShowLabel (boolean)

True or False indicating weather to show a control.

Enabled (boolean)

True or False indicating weather to is enabled for editing/modifying.

CssClass (string)

The CSS class name to apply to the control.


Extended Properties


The following properties are exposed by controls implementing the ICaisisLookupControl interface. This provides easy access to binding to Lookup Codes as well, as offering dynamic cascading values through related controls. LookupCode and LookupDistinct are AjaxCallbacks. The code that handles these callbacks can be found in Caisis.UI\Core\Utilities\LookupCodesCallBack.aspx.cs

LookupCode (string)

A code used to retrieve results from the database.

LookupDistinct (string)

Controls filtering of lookup values. The format is "tablename;valuefield;textfield;restriction;order". The query that looks up the Distinct values looks like this: "SELECT DISTINCT valuefield AS DropDownValue, textfield AS DropDownText FROM tablename WHERE restrictions ORDER BY order". order and restrictions are optional.

CascadeValuesBasedOn (string)

(Advanced) When combined with the CascadeFormatString, lookup codes for a control are generated on the fly (client-side through javascript,CaisisComboBox), or via AutoPostBack events (via server,CaisisSelect). This property takes a list of comma-seperated list of related Fields. When lookup codes are needed (during a combo box click event), then values are extracted from these related fields and used to build a dynamic lookup code that is retrieved from the server.

CascadeFormatString (string)

(Advanced) Specifies the format of the dynamic lookup codes, based on values of the related control (CascadeValuesBasedOn). Format is similar to C# String.Format method where string "my first value: {0} and second value: {1}" will have {0} and {1} replaced with an array of values, based on an index 0-n. In this case, the array of values are determined by the controls referenced(by Field names) in CascadeValuesBasedOn. In addition to using indexes of related control, you may also use the n. prefix to extract a number from the control's value. Below is an example of how this property is combined with the CascadeValuesBasedOn.

Example:

We have the field ClinStageT represented by the CaisisComboBox control.

On this same form there are two CaisisSelect(DropDownList) represented with Field ClinStageDisease and ClinStageSystem.

We now set the related properties.

  • CascadeValuesBasedOn="ClinStageDisease,ClientStageSystem"
  • CascadeFormatString="StageClin_{0}_{n.1}_T"

When we change the values of ClinStageDisease or ClinStageSystem, the lookup code which the ClinStageT ComboBox generates is based on the two observed values. So if we select Prostate for the ClinStageDisease, and select UICC_02 for ClinStageSystem, we will generate a lookupcode "StageClin_Prostate_02_T", since the "Value" of ClinStageDisease is "Prostate" and the "Value" of ClinStageSystem is "UICC_02". We only extract the number for the ClinStageSystem "Value", as our format string said to parse out a number, "{n.1}" from the value at index 1.

NOTES: If the control using these properties is a CaisiSelect, everytime an observed control changes values, it will cause a post back to the server, causing syncing issues with retaining values. The CaisisComboBoxes however do not post back, as values are generated via javascript and are retrieved using Client CallBacks, there is no need to worry about retaining values. If unsure, CaisisComboBoxes always provide the best method to handle dynamic lookup codes. The controls being observed (CascadeValuesBasedOn) can still be any type of control, even a CaisisSelect.

Personal tools