FineUI 官方论坛
标题:
【已确认】Grid表头过滤的问题,column:Name===field:Name?
[打印本页]
作者:
Herry
时间:
2017-8-31 14:48
标题:
【已确认】Grid表头过滤的问题,column:Name===field:Name?
如下面过滤数据,
column的值是Grid的栏位的ColumnID="Name",
field的值默认是
column一样,但是我现在设置Grid的
ColumnID="f1",DataField="Name",这时过滤数据依旧是如下一样
column=
field,那么问题是我如何设置
field的值?我希望是
field=
DataField或者任意设定,这是FineUI的bug吗?没有看到
column!
=
field的例子,有人有同样的疑问吗?
http://fineui.com/demo_pro/#/demo_pro/grid/grid_filter_complex.aspx
过滤参数:
[
{
"column": "Name",
"field": "Name",
"multi": true,
"matcher": "any",
"items": [
{
"operator": "contain",
"value": "111"
},
{
"operator": "contain",
"value": "222"
}
]
}
]
复制代码
[attach]10470[/attach]
作者:
Herry
时间:
2017-8-31 14:56
难道要都这样用?
[attach]10471[/attach]
作者:
sanshi
时间:
2017-8-31 21:25
这个是WebForms的一个特殊的地方,注意这里过滤数据中的 field 其实是一个JS变量,不是服务器端控件GridColumn对应的DataField对象。
并且也并非每个GridColumn都有DataField对象,比如HyperLinkField,ImageField,LinkButtonField等就没有DataField对象。
==================
那么怎么在过滤数据中获取这个服务端定义的DataField对象呢?
下个版本(v3.7)代码已经冻结,不会新增功能。
下下个版本(v4.0),,我们会在过滤数据中加入类似 f_dataField, f_dataTextField 或者 f_dataImageUrlField 的属性(如果有的话),如下所示:
[attach]10472[/attach]
==================
为什么WebForms版的FineUI会出现这种情况?
归根结底是在FineUIPro中,表格的很多列类型都是服务器渲染的,比如BoundField,HyperLinkField,ImageField,CheckBoxField.....
因此即使两个列的DataField相同,但是生成到客户端的数据可能截然不同,比如:
<f:BoundField DataField="AtSchool" />
<f:CheckBoxField DataField="AtSchool" />
所以在JS中,这两个列的 field 属性就应该是不同,而不能是 AtSchool,因此我们用 columnId 来当做 field。
在FineUIMvc,只有一种列类型 RenderField,因此JS端的 field 属性就对应于 RenderField 的 DataField,而不会出现冲突。
作者:
Herry
时间:
2017-8-31 23:30
非常感谢!
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4