我创建了一个带有下拉列表的jqGrid网格,这个列表(由于dev限制)需要加载一次,这样所有返回的数据都可以被过滤,到目前为止这一切都很酷,
当下拉列表发生更改时问题到了,虽然大多数过滤/搜索是在客户端完成的,我需要下拉列表来触发一个调用,该调用将使用新添加的参数刷新页面下拉列表。
我附上了构建工具栏搜索的代码部分,但我不知道如何在更改选择值时添加捕获事件处理程序的功能,在这个实例中我需要一个非标准代码执行 - 例如函数callNewData()
colNames:["Rent Due Date ","Tenant","Description","Address","Payment Ref.","Rent Amount","Outstanding","Amount Received","Confirm?","tenancyID","tenantID","rentID","existingRent"],
colModel :[{
name:"rentDueDate",
index:"rentDueDate",
align:"center",
width:"130",
search:true,
stype:"select",
searchoptions: {
value: "all:All;due:Due;overdue:Overdue;future:+1 Week;" ,
defaultValue:"due"
}
},
在搜索选项(或colModel)中的哪个位置我会放置onChange事件处理程序?
答案 0 :(得分:4)
很抱歉,但目前还不清楚你的确切问题。如果用户从下拉列表中选择一个选项,则jqGrid 会自动使用用户选择的过滤器重新加载网格。如果您使用本地datatype
,那么过滤将在内部由jqGrid完成。如果您使用datatype: "json"
或datatype: "xml"
而不使用loadonce: true
,则jqGrid会向服务器发送请求,将有关过滤器的信息附加到标准参数列表中。
如果您真的需要处理onChange
中的<select>
事件,那么您需要在change
内定义dataEvents
事件处理程序:
searchoptions: {
value: "all:All;due:Due;overdue:Overdue;future:+1 Week;",
defaultValue: "due",
dataEvents: [
{
type: "change",
fn: function (e) {
// some code which will be executed onChange
}
}
]
}