gpt4 book ai didi

jqgrid - 如何从当前行设置jqgrid中添加表单的默认字段值

转载 作者:行者123 更新时间:2023-12-02 09:04:39 26 4
gpt4 key购买 nike

添加工具栏按钮用于向 jqgrid 添加新行。出现的添加表单包含所有已提交的空值。如何设置从发出添加命令时当前/选定的行的列值添加表单字段值?使用json远程数据。或者,如果这更简单,如何调用传递当前/所选行的服务器方法以从服务器检索添加表单的默认值?

jqgrid 还包含隐藏列。如果可能的话,如果保存添加表单,当前行隐藏列中的值也应该发送到添加 Controller 。

更新

我尝试使用奥列格的伟大建议

         afterShowForm: function(formID) {
var selRowData,
rowid = grid.jqGrid('getGridParam', 'selrow');
if (rowid === null) {
// todo: how to cancel add command here
alert('Please select row');
return;
}

selRowData = grid.jqGrid('getRowData', rowid);
if (selRowData === null) {
alert('something unexpected happened');
return;
}

$('#' + 'Baas' + '.FormElement', formID).val(selRowData.Baas);
}

应用程序在保存后保持添加表单打开。第一次保存后 Baas 字段为空。看起来 afterShowForm 事件只运行一次,而不是在每次保存后运行。如何解决此问题,以便可以在不关闭添加表单的情况下添加具有默认值的多行?如果没有选定的行,如何取消或不允许添加命令?

最佳答案

如果您只需要为添加表单进行一些初始化操作,您可以使用至少两种方法:

  • defaultValue的用法属性作为 editoptions 内部的函数。回调函数defaultValue可以根据所选行的数据为添加表单的相应字段提供值。出于优化目的,您可以在 beforeInitData 中读取当前所选行的数据一次。回调/事件。您可以直接读取您需要的数据,也可以同步调用服务器来获取您需要的信息。使用 defaultValue 的唯一缺点属性是它使用 jQuery.val方法为添加表单的所有字段设置默认值,但“复选框”异常(exception) edittype 。对于复选框 jqGrid 设置false复选框的checked属性, 0 , no , offundefineddefaultValue 返回的值中找不到属性(property)。因此该方法不适用于其他编辑类型。例如,custom 可能会失败。编辑类型。
  • beforeShowForm的用法或afterShowForm 。在回调函数内部,您可以设置表单的任何值。通过与name值相同的字段id可以找到网格对应列的字段相应列的属性。

就像您已经知道的那样,您可以获得当前所选行的 ID getGridParam并从所选行获取数据

var selRowData, rowid = grid.jqGrid('getGridParam', 'selrow');
if (rowid !== null) {
// a row of grid is selected and we can get the data from the row
// which includes the data from all visible and hidden columns
selRowData= grid.jqGrid('getGridParam', 'selrow');
}

哪里grid是像 $('#list') 这样的 jQuery 对象选择主 <table>网格的元素。

the demo您可以看到上述第一种方法的工作原理。

关于jqgrid - 如何从当前行设置jqgrid中添加表单的默认字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7943924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com