【问题标题】:How to change a row's particular cell value in jqgrid如何在jqgrid中更改行的特定单元格值
【发布时间】:2012-09-22 09:13:09
【问题描述】:

我想更改特定行的单元格值,我有行 ID。我尝试过使用以下内容。但它不起作用。

$("#my-jqgrid-table").jqGrid('setCell',rowId,'Currency', '12321');

我正在使用loadonce: true

请有人帮我解决这个问题。谢谢

【问题讨论】:

  • 您需要发布有关您使用的网格的更多详细信息。 colModel'Currency' 列的完整 定义确实是必需的。此外,了解您调用setCell何时(在何种情况下)也很重要。您需要修改的销售是否处于编辑模式?
  • @All - 如果您没有 rowID 并且需要知道如何获取它,consider this example

标签: jquery jqgrid jqgrid-asp.net


【解决方案1】:

您可以使用getRowDatasetRowData 方法来实现这一点(它们直接使用数据数组):

var rowData = $('#my-jqgrid-table').jqGrid('getRowData', rowId);
rowData.Currency = '12321';
$('#my-jqgrid-table').jqGrid('setRowData', rowId, rowData);

【讨论】:

  • 不确定哪个版本可用(我使用的是jqGrid-4.5.2),但$("#...").getRowData(id)$("#...").setRowData(id, rowData) 也可以。
  • @notfed 事实上,您提到的两种方法都来自旧 API。任何 jQuery 插件的设计准则都是只公开一种方法,并让其他方法作为字符串参数可用(jQuery UI 小部件方法以相同的方式工作)
  • 我不知道为什么这个用户接受另一个答案....:) 因为这是 jqgrid 中的标准解决方案
  • @tpeczek 它不适合我。我正在使用免费的 jqgrid 4.14 版本
  • @shv22 我无法重现任何问题,您能否分享更多细节(通过电子邮件或其他方式)
【解决方案2】:

这里是根据documentation的正确方法:-

$("#my-jqgrid-table").jqGrid("setCell", rowid, "Currency", "New value");

检查所有变量是否正确,因为您所做的似乎正确。 loadOnce 没有影响,你肯定是别处出错了。

  • 您确定行名是货币(不是索引)
  • 检查变量rowId,它应该是rowid还是rowID

【讨论】:

  • 这在我的情况下效果很好:我不希望更改触发格式功能,就像setRowData 所做的那样。另外,如果您想更改本地数据,请查看此 Oleg 的答案:stackoverflow.com/a/9145342/1863970
【解决方案3】:

感谢大家的努力,在工作中的一位朋友的帮助下,我设法用一些 jquery 完成了这项工作。

这就是我所做的......

$("#" + rowId).find('td').eq('3').html('newText')

这里使用3,因为我想更改我的第三列。

希望这对将来的某人有用:)

【讨论】:

  • 它正在工作,只有当页面范围内有一个网格可用时。当页面有多个网格时,这将失败。
  • 对于多个网格只需更改为: $("#my-jqgrid-table #" + rowId).find('td').eq('3').html('newText')
  • 这确实不是一个安全的解决方案。
  • 这不是正确答案.. tpeczek 给出的答案应标记为正确答案e
  • 完成@MarkCarpenterJr。哇,我的回答很吓人。
猜你喜欢
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多