我们可以通过SmGrid.GridAdvanceFilter属性访问到高级筛选这个对象,然后用代码控制各个选项的筛选设置值。
- '测试代码仅随便获得一个表的引用
- Dim tbl As SmGrid=Proj.CurrentSmGrid
- '根据字段名称获得相应的选项引用
- Dim col As AdvanceFilterItem= tbl.GridAdvanceFilter.FilterCols("列名称")
- '根据DataControl返回设置值的控件引用,因为日期控件、数值类型、下拉控件都是基于C1TextBox控件扩展的,
- '所以我们都可以将这个控件转化为C1TextBox,这只是针对只有一个参数的场景,日期型和数值型区间筛选模式代表第一个控件
- Dim ctrl As C1TextBox=col.DataControl
- ctrl.Value="ABC"
-
- '针对日期型和数值型区间筛选模式的,需要另外处理
- 'DateTimeItem这个类需要下个版本2025.04.07以后才开放
- Dim colDate As DateTimeItem= tbl.GridAdvanceFilter.FilterCols("日期类型列名称")
- Dim ctrlBegin As SmDateEdit=colDate.DateTimeBegin
- ctrlBegin.Value=DateTime.Now
- Dim ctrlEnd As SmDateEdit=colDate.DateTimeEnd
- ctrlEnd.Value=DateTime.Now.AddDays(5)
-
- 'NumberItem这个类需要下个版本2025.04.07以后才开放
- Dim colNum As NumberItem= tbl.GridAdvanceFilter.FilterCols("数值类型列名称")
- Dim numBegin As SmNumericComboBox=colNum.NumberBegin
- numBegin.Value=1
- Dim numEnd As SmNumericComboBox=colNum.NumberEnd
- numEnd.Value=100
-
- '重新加载表数据,会自动从高级筛选中获得相应的最终筛选条件进行筛选重载
- tbl.ReloadData()
复制代码
|