4.富输入功能

富输入(Rich-Edit)功能是Supcan Treelist相当重要的功能，也是作为强交互的Grid控件所必备的基本功能。Treelist内置如下10种EditType:
1.Edit，普通输入，其中数值型、日期型允许有和PowerBuilder类似的格式掩码(EditMask);
2.EditWithButton， 右侧带按钮的Edit()，点击按钮会抛出OnEvent(id, "Clicked",,,,“button”)事件;
3.MultiLineEdit，多行编辑();
4.Checkbox，复选框(), Checkbox的选中/不选中状态和数据有关, 数据规则为:
1:选中;
0:未选中;
2:状态不确定(方框内显示一实框);
-1:不显示Checkbox;
5.RadioButton，单选框()，单选框必须由多个列组成，并允许按GroupID分成多个独立的组. 其列的数据规则为:
1:选中;
0:未选中(也不显示).
6.button，按钮列()，点击按钮会抛出OnEvent(id, "Clicked",,,,“button”)事件。按钮表面除了可以显示文字，也可以显示图标；每列允许并排有多个按钮，详细规格请参见Treelist XML文档规范. 列的数据规则为:
1:正常显示按钮;
0:按钮显示为Disabled;
其它值: 不显示按钮，作为纯文字显示;
7.Droptreelist / EditAbleDroptreelist，下拉嵌套的treelist/可编辑的下拉treelist()，下拉弹出的是另一个独立的Treelist，有点类似于 PowerBuilder 中的DDDW;
8.Droplist / EditAbleDroplist，下拉列表/可编辑的下拉列表()，Windows操作系统自带的Combobox下拉控件，相当于是Html的<Option>、<Select>;
Demo页中有很多演示页面，淋漓尽致地展示了各种富输入功能，请具体分析这些XML描述文件。
上述EditType中，有几种是下拉类型，下拉比较复杂，在此稍作详细分析。

4.1 DropTreelist

DropTreelist类型的下拉列，都必须定义"droplistID"属性，该"droplistID"对应于当前XML描述文件中根元素<Droplists>下某个具体的<Droplist>，例如：
下拉的单元格的值数据(value)和显示串(text)通常是不一样的，显示什么样的串由关联的<Droplist>决定，这和数据库中的主-外键对应关系原理是一样的。
<Droplist>中的 Treelist="?" 就是下拉后弹出的Treelist, 它是一个独立的Treelist.
<Droplist>中的 DataCol 和 DisplayCol 属性很重要，分别指定了数据列和显示列，因为被引用的外部Treelist可能会有很多列.
从上图可以看出，<Droplists> 节点相当于是字典库，集中登记了可能会被引用到的所有外部Treelist.

你可以在这里直接指定下拉的 dataURL: <Droplist id="?" Treelist="?" dataURL="?" ...>, 这里的dataURL级别高于其默认的 dataURL.

4.2 DropList

下图的“客户”、“国家”使用了Droplist输入类型，然而其数据字典的来源却不一样；
Custom(客户)下拉指向了一个外部Treelist, 表示它的键-值数据来自这个外部Treelist;
Country(国家)下拉字典, 是一个真正的字典：已内置了字典数据;

国家的字典还可以这样写<DropList id="country" dataURL="dataserv/action?did=country"/>, 动态从后端拉数据!

还有一种不太常用的处理方法：不指定droplistID, 如<col name="country" edittype="droplist">国家</col>，通过全局函数中的 "droplist_"族函数动态为下拉字典添加键-值对.

4.3 EditWithButton

EditWithButton可以采用下拉字典，也可以不采用下拉字典.
在有些场合中，采用下拉字典来维护EditWithButton的键-值对，能简化开发。采用了下拉字典后，其存取数据、维护键-值对的API，就和常规的DropList类型一视同仁了。
要让EditWithButton采用下拉字典，只要和Droplist一样指定DroplistID即可: <col name="?" edittype="editWithButton" droplistID="?" ...>，当然这个下拉只是作为键-值对的缓存而已，绝不会弹出显示的，EditWithButton的交互行为，完全交由您在OnEvent( )事件中处理。

也可以让 DroplistID="auto"，系统能自动为其分配一个空的下拉字典.