昨天提到了如何在Grid的Cell中下拉列表框,今天将演示如何在Grid的Cell中实现下拉Grid,这也是UltraGrid提供的一个很好的特性。
1. 拖放一个Grid到Form中,添加一些Band Column,然后设置Team栏位为DropDown或DropDownList类型
注意:设置为DropDown,则该栏位可以允许手工输入数据;
设置为DropDownList,则该栏位只允许选择,不允许手工输入数据。

2. 拖放一个UltraDropDown到Form的随意一个地方(最好放到边角上,不盖住其他控件为原则,因为它本身是Visible的,所以这样方便其他控件的布局)

3. 像编辑Grid一样编辑UltraDropDown的Column,增加两个Column,一个是Name,一个是Description,用来分别呈现Team的两个属性
注意:因为Grid中的Cell一般只放单笔记录,所以该UltraDropDown应该只允许单选,所以需要设置其Presets为ListBox-single-select(Default)

4. 在Form Load或Form构造函数中将UltraDropDown绑定特定数据源

5. 在Grid的InitializeLayout事件中关联Column和UltraDropDown
如第二句所示

6. 大功告成
点击第一行的Team Cell,弹出Grid如下

7. 相关事件
如果想要做一些关联操作,如选中BO3后,将其Description值(或其他下拉Grid中的值)一并带入Grid的另外一个Cell中,则可以采用如下方式
UltraDropDown的RowSelected事件中记录选中的Row

在Grid的相关事件中根据选中的Row进行赋值动作