对一张Webdynpro for abap表进行排序或列的过滤,是实际开发中常常碰到的问题,将本人解决的方法简单记录下来:
1.声明一个全局属性table_handler,类型为if_wd_table_method_hndl.
2.在view的context中新建一些string类型的attribute,绑定到要排序或过滤的table的列中。
3.在table所在的view的wddomodifyview方法添加如下代码:
4.在table的property中新建onFilter或onSort事件,如果是onFilter事件需先将要过滤列的isFileted属性选中,将filterValue值先绑定到2中新建的属性。
5.在onFilter事件中添加语句:
在onSort事件中添加语句:
1.声明一个全局属性table_handler,类型为if_wd_table_method_hndl.
2.在view的context中新建一些string类型的attribute,绑定到要排序或过滤的table的列中。
3.在table所在的view的wddomodifyview方法添加如下代码:
data wd_table type ref to cl_wd_table.
check first_time = 'X'.
wd_table ?= view->get_element('table id').
wd_this->table_handler ?= wd_table->_method_handler.
wd_this->table_handler->set_key_attribute_name( 'filter or sorting column binding attribute' ).
4.在table的property中新建onFilter或onSort事件,如果是onFilter事件需先将要过滤列的isFileted属性选中,将filterValue值先绑定到2中新建的属性。
5.在onFilter事件中添加语句:
wd_this->table_handler->apply_filter( )
在onSort事件中添加语句:
wd_this->table_handler->apply_sorting( ).