EasyUI实战篇之datagrid:如何重新设置datagrid所配置的属性(options)并重新查询列表(relaod)
http://www.stepday.com/topic/?873
今天在使用EasyUI的datagrid列表组件想实现一个列表的展现,且列表上方有搜索条件,初始化的时候我是这样配置的:
1.
<
table
id
=
"tBaoXiuList"
title
=
""
class
=
"easyui-datagrid"
style
=
"width: 723px; height: auto"
url
=
"/AjaxCommon/t_baoxiu_ajax.asp?type=getIndexList"
toolbar
=
"#bar_search"
pageSize
=
"30"
pagination
=
"true"
rownumbers
=
"true"
fitcolumns
=
"true"
singleselect
=
"true"
>
2.
3.
</
table
>
这样根据参数是可以查询出数据的。但是当我想根据查询参数进行数据过滤的时候,定然是需要将参数加入到默认url后面去才行的。
开始想到的办法是通过datagri的属性queryParams来实现:
1.
$(
'#tBaoXiuList'
).datagrid({
2.
queryParams:{
3.
keyName:keyName,
4.
keyVal:keyVal
5.
}
6.
});
7.
8.
$(
'#tBaoXiuList'
).datagrid(
"reload"
);
结果发现这样并未将参数传递到后台页面进行数据过滤。
最后想到的方法是先通过datagtrid的options属性找到且url,修改url后通过reload再次请求数据,示例代码如下所示:
1.
var
keyName = $(
"#txtKeyName"
).combobox(
"getValue"
);
2.
var
keyVal = $(
"#txtKeyVal"
).val();
3.
4.
$(
'#tBaoXiuList'
).datagrid(
'options'
).url =
"/AjaxCommon/t_baoxiu_ajax.asp?type=getIndexList&keyName="
+ keyName +
"&keyVal="
+ escape(keyVal);
5.
$(
"#tBaoXiuList"
).datagrid(
'reload'
);
示例效果如如下所示: