ExtJS ComboBox 不会显示项目

发布于 2024-12-01 20:11:59 字数 1457 浏览 1 评论 0原文

我运行此代码,下拉菜单不会下拉——没有显示任何项目。

查看调试器,我发现商店没有商品。

当我注释掉“url”并取消注释“data”(其中包含 .cfm 页面生成的确切 json 字符串)时,下拉列表将按预期工作。

有人知道这是怎么回事吗?

<html>
<head>
   <link rel="stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" />
   <script src="ext-3.1.0/adapter/ext/ext-base.js"></script>
   <script src="ext-3.1.0/ext-all-debug.js"></script>
   <script>
      if (Ext.BLANK_IMAGE_URL.substr(0,5) != 'data:')
      {
         Ext.BLANK_IMAGE_URL = 'ext-3.1.0/resources/images/default/s.gif';
      }
      Ext.onReady(function()
      {
         var testStore = new Ext.data.JsonStore({
            url: 'combotest.cfm',
            //data: {"ROWS":[{"NAME":"one"},{"NAME":"two"},{"NAME":"three"}]},
            root: 'ROWS',
            fields: ['NAME'],
            autoLoad: true
         });

         var test_form = new Ext.FormPanel(
         {
            renderTo: Ext.getBody(),
            frame: true,
            title: 'Form',
            width: 500,
            items: [
            {
               xtype: 'combo',
               fieldLabel: 'Combo Box',
               triggerAction: 'all',
               mode: 'local',
               store: testStore,
               displayField: 'NAME',
               width: 350
            }
            ]
         });
      });
   </script>
</head>
<body>
</body>
</html>

I run this code and the dropdown won't drop down -- no items get displayed.

Looking in the debugger I see that the store has no items.

When I comment out the 'url' and uncomment 'data' (which contains the exact json string produced by the .cfm page) the dropdown works as expected.

Anyone know what's going on here?

<html>
<head>
   <link rel="stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" />
   <script src="ext-3.1.0/adapter/ext/ext-base.js"></script>
   <script src="ext-3.1.0/ext-all-debug.js"></script>
   <script>
      if (Ext.BLANK_IMAGE_URL.substr(0,5) != 'data:')
      {
         Ext.BLANK_IMAGE_URL = 'ext-3.1.0/resources/images/default/s.gif';
      }
      Ext.onReady(function()
      {
         var testStore = new Ext.data.JsonStore({
            url: 'combotest.cfm',
            //data: {"ROWS":[{"NAME":"one"},{"NAME":"two"},{"NAME":"three"}]},
            root: 'ROWS',
            fields: ['NAME'],
            autoLoad: true
         });

         var test_form = new Ext.FormPanel(
         {
            renderTo: Ext.getBody(),
            frame: true,
            title: 'Form',
            width: 500,
            items: [
            {
               xtype: 'combo',
               fieldLabel: 'Combo Box',
               triggerAction: 'all',
               mode: 'local',
               store: testStore,
               displayField: 'NAME',
               width: 350
            }
            ]
         });
      });
   </script>
</head>
<body>
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野心澎湃 2024-12-08 20:11:59

一位同事想出了办法。除了 json 字符串之外,.cfm 页面还返回调试信息。添加

<cfsetting showdebugoutput="FALSE">  

到 .cfm 页面的末尾可以清除它。

A colleague figured it out. The .cfm page was returning debug info in addition to the json string. Adding

<cfsetting showdebugoutput="FALSE">  

to the end of the .cfm page cleared it up.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文