我将jqGrid从4.7.1升级到4.14
这是我初始化网格的脚本
is_symlink()
这是我在网格中添加新行的地方
data = []
for i in raw_data[:10]:
scored = i.date_scored
scored_date = pd.to_datetime(scored, format='%Y-%m-%d %H:%M')
if scored_date == "NoneType":
print("none")
elif scored_date.year >= 2016:
extracted = i.date_extracted
extracted_date = pd.to_datetime(extracted, format='%Y-%m-%d
%H:%M')
bank = i.bank.name
diff = scored_date - extracted_date
print(diff)
datum = [str(bank), str(extracted), str(scored), str(diff)]
data.append(datum)
else:
pass
添加了新行,但未触发afterInsertRow事件。为什么会这样?我的代码中有错误吗?
答案 0 :(得分:1)
免费jqGrid支持afterAddRow
,afterSetRow
和afterDelRow
回调,这些回调将在addRowData
,setRowData
和delRowData
结束时调用方法。 free jqGrid引入的最新回调函数有一个参数(例如options
),这些参数包含其他信息。它允许仅使用需要的属性,如果只需要使用旧式回调的最后一个参数,则无需插入不需要的第一个参数。此外,新式的回调参数允许在未来的免费jqGrid版本中轻松扩展选项。
因此,您可以将afterInsertRow: function (rowid) {
更改为afterAddRow: function (options) { var rowid = options.rowid;
一般情况下,我建议您对代码进行更多更改。你在afterInsertRow
内做的是创建自定义操作按钮。你的代码很长很慢,因为jqGrid 4.7没有简单的方法来创建自定义操作按钮。免费jqGrid支持该功能。我建议您阅读the wiki article,以检查the demo,this one的代码以及the answer中包含的演示。您将看到创建操作按钮非常简单。您可以完全控制onClick
回调。