”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我的 jqGrid 编辑表单中的状态选择框选项值不正确?

为什么我的 jqGrid 编辑表单中的状态选择框选项值不正确?

发布于2024-11-08
浏览:582

Why are the State select box option values incorrect in my jqGrid edit form?

jqgrid 在编辑框中选择下拉选项值不正确

尽管在编辑表单中正确选择了“国家/地区”和“州”值,但“州”选择框中显示的选项值编辑表格时不正确。即使选择美国国家/地区后切换回英国国家/地区,此问题仍然存在。

如何解决“州”选择框中不正确的选项值

要解决此问题,需要正确加载编辑表单时,根据所选国家/地区值填充州选择框。该方法涉及:

  1. 根据 dataInit 函数中的国家/地区选择填充州值。
  2. 如果国家/地区更改,则重建州选择框。

代码解决方案

var countries = { '1': 'US', '2': 'UK' };
var states = { '1': 'Alabama', '2': 'California', '3': 'Florida', '4': 'Hawaii', '5': 'London', '6': 'Oxford' };
var statesOfCountry = {
    1: { '1': 'Alabama', '2': 'California', '3': 'Florida', '4': 'Hawaii' },
    2: { '5': 'London', '6': 'Oxford' }
};

var resetStatesValues = function () {
    grid.setColProp('State', { editoptions: { value: states} });
};

$("#list").jqGrid({
    data: mydata,
    datatype: 'local',
    colModel: [
        { name: 'Name', width: 200 },
        { 
            name: 'Country', 
            width: 100, 
            editable: true, 
            formatter: 'select',
            edittype: 'select', 
            editoptions: {
                value: countries,
                dataInit: function (elem) {
                    setStateValues($(elem).val());
                },
                dataEvents: [
                    { type: 'change', fn: function (e) { changeStateSelect($(e.target).val(), e.target); } },
                    { type: 'keyup', fn: function (e) { $(e.target).trigger('change'); } }
                ]
            }
        },
        {
            name: 'State', 
            width: 100, 
            editable: true, 
            formatter: 'select',
            edittype: 'select', 
            editoptions: { value: states }
        }
    ],
    onSelectRow: function (id) {
        if (id && id !== lastSel) {
            if (lastSel != -1) {
                resetStatesValues();
                grid.restoreRow(lastSel);
            }
            lastSel = id;
        }
    },
    ondblClickRow: function (id, ri, ci) {
        if (id && id !== lastSel) {
            grid.restoreRow(lastSel);
            lastSel = id;
        }
        resetStatesValues();
        grid.editRow(id, true, null, null, 'clientArray', null,
                        function (rowid, response) {  // aftersavefunc
                            grid.setColProp('State', { editoptions: { value: states} });
                        });
        return;
    },
    editurl: 'clientArray',
    sortname: 'Name',
    height: '100%',
    viewrecords: true,
    rownumbers: true,
    sortorder: "desc",
    pager: '#pager',
    caption: "Demonstrate dependend select/dropdown lists (edit on double-click)"
}).jqGrid('navGrid','#pager', 
          { edit: true, add: true, del: false, search: false, refresh: false },
          { // edit options
              recreateForm:true,
              onClose:function() {
                  resetStatesValues();
              }
          },
          { // add options
              recreateForm:true,
              onClose:function() {
                  resetStatesValues();
              }
          });

注释

  • grid.setColProp(...)方法用于设置列属性。
  • dataInit函数用于初始化选择框并用选项填充它。
  • dataEvents 数组用于将事件处理程序附加到选择框。
最新教程 更多>
  • # 终极指南:QA 自动化工程师的调试技术
    # 终极指南:QA 自动化工程师的调试技术
    ?️ 面对让您摸不着头脑的测试失败? 调试可能感觉像是一场徒劳的追逐,但通过正确的技术,您可以加快工作流程并更快地发现问题。在这篇文章中,我将分享每个 QA 自动化工程师在他们的工具包中应该拥有的实用调试方法,以提供更可靠的自动化脚本。 ? 为什么调试在自动化测试中很重要 调试对于以...
    编程 发布于2024-11-08
  • 如何使用 Java Lookahead 和 Lookbehind 拆分字符串并保留分隔符?
    如何使用 Java Lookahead 和 Lookbehind 拆分字符串并保留分隔符?
    使用保留的分隔符分割字符串处理由一组唯一分隔符分隔的多行字符串时,分割字符串可能会很困难同时还保留分隔符本身。标准 String.split 方法仅根据指定的分隔符分隔字符串,并丢弃分隔符。使用 Lookahead 和 LookbehindJava 开发工具包 (JDK)提供了使用lookahead...
    编程 发布于2024-11-08
  • 为什么 np.vectorize() 比 df.apply() 对于 Pandas 列创建更快?
    为什么 np.vectorize() 比 df.apply() 对于 Pandas 列创建更快?
    Pandas apply 与 np.vectorize 的性能比较据观察,np.vectorize() 可以明显快于 df。基于 Pandas DataFrame 中的现有列创建新列时使用 apply() 。观察到的性能差异源于这两种方法所采用的底层机制。df.apply() 与 Python 级循...
    编程 发布于2024-11-08
  • 如何修复由于 MySQL 严格模式导致 Laravel Eloquent 中的“SELECT 列表的表达式 #1 不在 GROUP BY 子句中”错误?
    如何修复由于 MySQL 严格模式导致 Laravel Eloquent 中的“SELECT 列表的表达式 #1 不在 GROUP BY 子句中”错误?
    Laravel Eloquent 中与 sql_mode=only_full_group_by 不兼容遇到错误“SELECT 列表的表达式 #1 不在 GROUP BY 子句中.. .” 当执行带有分组的 Eloquent 查询时,表明与 MySQL 的 sql_mode=only_full_gro...
    编程 发布于2024-11-08
  • 冰冷的池塘如何帮助您理解 C++ 中未定义的行为?
    冰冷的池塘如何帮助您理解 C++ 中未定义的行为?
    理解初学者的未定义行为对于新程序员来说,未定义行为是一个很难掌握的概念,特别是当他们在工作中遇到过它时实践其具体实施。为了帮助新手理解避免未定义行为的重要性,可以采用一个有效的类比。想象一个结冰的池塘,其中冰的厚度和稳定性是不可预测的。假设你走过池塘一次,它成立。这能保证每次都能安全通过吗?当然不是...
    编程 发布于2024-11-08
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-11-08
  • 如何在Vue.js组件中动态加载外部JS脚本?
    如何在Vue.js组件中动态加载外部JS脚本?
    在 Vue.js 组件中动态加载外部 JS 脚本使用支付网关时,集成促进交易的外部脚本变得必要。然而,通常不希望在初始页面加载时加载这些脚本。这就是 Vue.js 提供的解决方案,用于在特定组件中动态加载外部脚本。要实现此目的,请利用 Vue.js 组件中的 Mounted() 生命周期挂钩。 Mo...
    编程 发布于2024-11-08
  • 如何使用 Foreach 循环查找 PHP 数组中的最后一个元素?
    如何使用 Foreach 循环查找 PHP 数组中的最后一个元素?
    使用 PHP 的 foreach 循环查找数组中的最后一个元素在 PHP 中,在 foreach 循环中访问数组的最后一个元素需要与 Java 相比,这是一种更细致的方法,可以直接检查数组长度。使用计数和增量要确定最后一个元素,您可以利用 count( ) 函数,返回数组中的元素数量:$numIte...
    编程 发布于2024-11-08
  • 如何解决Python中的循环依赖问题?
    如何解决Python中的循环依赖问题?
    Python 中的循环依赖解析在 Python 中,当模块相互依赖其定义时,可能会遇到循环依赖。当两个文件(node.py 和 path.py)分别定义类 Node 和 Path,并且每个文件都引用另一个文件时,就会出现这样的情况。最初,path.py 导入 node.py 来访问 Node目的。然...
    编程 发布于2024-11-08
  • rnr:适用于每个项目运行脚本的工具
    rnr:适用于每个项目运行脚本的工具
    嘿,JavaScript 和 TypeScript 开发者! ?您是否厌倦了使用不同的命令来启动各种 JS 项目?好吧,我有一些令人兴奋的消息要告诉你!我创建了一个名为 rnr(发音为“runner”)的工具,它使运行任何 JavaScript 或 TypeScript 项目变得超级容易。 ...
    编程 发布于2024-11-08
  • Java 的可选类型如何简化“Get”调用链中空值的处理?
    Java 的可选类型如何简化“Get”调用链中空值的处理?
    使用可选的“Get”调用链安全导航在 Java 编程中,经常会遇到“get”调用链,如下所示:house.getFloor(0).getWall(WEST).getDoor().getDoorknob();为了避免潜在的 NullPointerExceptions,开发人员通常采用详细的 null ...
    编程 发布于2024-11-08
  • 大泥球:理解反模式以及如何避免它
    大泥球:理解反模式以及如何避免它
    前端开发中最臭名昭著的架构反模式可能是大泥球。术语“大泥球”适用于没有明显结构或模块化组织的系统。代码库有机且混乱地增长,成为维护的噩梦。这是许多开发人员发现自己所处的情况,特别是当他们面临着按时完成任务并开发大量功能的压力时。 这就是当前文章的内容:大泥球反模式以及前端开发中的示例,为什么它如此常...
    编程 发布于2024-11-08
  • 如何正确使用带 Map 参数的“reflect.Call”函数?
    如何正确使用带 Map 参数的“reflect.Call”函数?
    解决reflect包中的.Call使用问题在reflect包中使用.Call函数时,遵守所需的参数格式至关重要。本文将指导您完成正确使用 .Call 函数并操作 in 变量以满足目标方法的过程。提供的示例代码中:params := "some map[string][]string&quo...
    编程 发布于2024-11-08
  • 如何使用 HTML 和 CSS 创建翻页卡动画
    如何使用 HTML 和 CSS 创建翻页卡动画
    在这篇文章中,我们将了解如何使用 HTML 和 CSS 以及渐变背景创建时尚的 3D 翻转卡片动画。 访问我的网站 了解结构 我们将使用卡片的两侧(正面和背面)来创建翻转效果。此效果将在悬停时使用 CSS 过渡激活。 <div class="card"> <...
    编程 发布于2024-11-08
  • Python 中的 len() 函数有多高效?
    Python 中的 len() 函数有多高效?
    Python 中 len() 函数的成本影响len() 函数是 Python 内置功能的组成部分,提供有关各种数据结构的长度的信息。具体来说,它通常与列表、元组、字符串和字典一起使用,以确定它们所包含的元素或字符的数量。与直观的感知相反,len() 函数的计算成本保持不变跨越所有上述数据类型。这意味...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3