需要将jqgrid列名传递给由;onclickSubmit";事件

需要将jqgrid列名传递给由;onclickSubmit";事件,jqgrid,Jqgrid,我需要向由navGrid的编辑选项中定义的jqgrid事件触发的函数传递或提供jqgrid colModel列名 以下是jqgrid和javascript代码段: ..., onclickSubmit: fixpostdata}, // navGrid edit options . . . var fixpostdata = function(params, postdata){ var rowid = $('#tab3-grid').getGridParam('selrow');

我需要向由navGrid的编辑选项中定义的jqgrid事件触发的函数传递或提供jqgrid colModel列名

以下是jqgrid和javascript代码段:

..., onclickSubmit: fixpostdata}, // navGrid edit options
.
.
. 
var fixpostdata = function(params, postdata){
    var rowid = $('#tab3-grid').getGridParam('selrow');

    // when the onclickSubmit event fires and calls this function,
    // a string containing a jqgrid colmodel column name needs to be
    // made available in order to modify that cell's value contained
    // in the postdata array prior to posting it to the server.

    columnName =  ???;

    var value = $('#tab3-grid').jqGrid('getCell', rowid, columnName );

    postdata[ columnName ] = value;

    return;
}
有人能帮忙吗? 也,
params参数中包含哪些内容?

如果需要将某个隐藏列的内容与其他可编辑列一起发送到服务器,则需要在隐藏列中包含
可编辑:true
,并添加一个属性

editrules: { edithidden: false }

您要归档的内容有问题。在提交整个表单之前,将调用回调函数。所以它独立于任何网格列。此外,我看不出您的问题与jQueryUIAutoComplete有任何关系。试着改变你的问题的文本来描述你原来的问题。
onclickSubmit
的使用已经是一种实现方式,可能不是最好的。@Oleg-Ok。。。我把问题的措辞改得更清楚了。我之所以使用onclickSubmit事件,是因为根据jqgrid文档,它使postdata数组在构建之后和发布到服务器之前可以进行修改。函数需要知道列的名称,然后才能修改其在postdata数组中的值。该方法与函数中硬连线的列名完美配合,但我想使该函数可用于具有函数所需的不同列名的其他网格。我仍然不理解您的意思,因为jqGrid会以您需要的格式自动发送有关修改列的信息。你不应该做任何事。发布的数据将包括
id
和所有可编辑列的值。列的名称将用作将发送到服务器的参数的名称。rowid参数的默认名称是
id
。此外,还将发送值为“编辑”、“添加”或“删除”的
oper
参数。您可以使用或检查HTTP trafic。@Oleg-我寻求的答案是由于jqgrid确定在editform submit上放入postdata数组的内容的方式。edittype:'select'的jqgrid字段显示选择标签,jqgrid将选择值放入postdata数组。但是,在jqgrid editoptions dataqinit:中使用jquery UI autocomplete需要一个edittype为“text”的字段。jqgrid的默认操作是将文本框中显示的内容放入postdata数组。我想显示所选的自动完成标签,但需要发布值。因此,当触发自动完成选择:事件时,我将值保存在隐藏列中。当jqgrid onclickSubmit事件触发该值时,fixpostdata函数将检索该值。然后,函数在发送到服务器之前,用postdata数组中的值替换标签。但为了检索存储的值,函数需要知道存储值的rowid和列名。如果我理解正确,您希望我将隐藏列设置为可编辑,以便jqgrid在提交时看到它并将其添加到postdata数组中,但同时将其隐藏在编辑表单中。这将消除onclickSubmit事件及其触发函数更新postdata数组的需要。然后,php脚本将查找并处理发布到服务器的隐藏列名的存在。那就行了。但是,如果我想让被触发函数使用隐藏的列名,我该怎么做?@NelsonM:我不明白你在“jqgrid将看到它”下的意思。若我理解你们的意思是正确的,你们已经隐藏了你们想要在表单编辑期间发送的数据列。在这种情况下,我的建议基本上接近你需要的。如果只添加到隐藏列
editable:true,editrules:{edithidden:false}
中,您将得到与
onclickSubmit
完全相同的结果。我假设您在服务器代码中实现了所需的所有内容。我只是说,您的建议将允许jqgrid在editform中看到隐藏列,以便将其包含在postdata数组中,同时从用户视图中隐藏。在jqgrid中,提交editform时,postdata数组中默认不包含隐藏列。如果jqgrid具有edittype:“自动完成”功能类似于“选择”edittype,我们不会进行此问答。但我仍然想知道如何将数据传递给fixpostdata函数。@NelsonM:我的建议意味着您要发送的隐藏列将不可见,但该列中的信息将作为隐藏数据包含在表单中,然后将以与您在问题中描述的格式完全相同的格式发送到服务器。试试这个,你就会看到结果。没有编辑类型:'autocomplete'。关于
fixpostdata
函数的问题是状态错误。如果您想从某个隐藏列向服务器发送一些信息,您必须知道需要哪些信息。所以我不理解code
columnName=???