Xml 为什么启动+;(加号)不显示在数据网格的组合框中?

Xml 为什么启动+;(加号)不显示在数据网格的组合框中?,xml,apache-flex,datagrid,combobox,adobe,Xml,Apache Flex,Datagrid,Combobox,Adobe,我使用几个带有组合框和数据网格的控件,我使用返回一些XML的HTTPService填充这些控件。但是,在XML中,有些电话号码以加号开头(即+123456)。但是,在组合框和数据网格中,加号不显示(因此将显示为12345646) 我是否使用CDATA并不重要。当我更改该值时,我看到以下内容: +123456:显示为“123456” +123+456:正确显示 +abcdef:显示正确 +abc456:显示正确 +123def:显示正确 +123+def:显示正确 所以有两个问题:为什么会发生

我使用几个带有组合框和数据网格的控件,我使用返回一些XML的HTTPService填充这些控件。但是,在XML中,有些电话号码以加号开头(即+123456)。但是,在组合框和数据网格中,加号不显示(因此将显示为12345646)

我是否使用CDATA并不重要。当我更改该值时,我看到以下内容:

  • +123456:显示为“123456”
  • +123+456:正确显示
  • +abcdef:显示正确
  • +abc456:显示正确
  • +123def:显示正确
  • +123+def:显示正确
所以有两个问题:为什么会发生这种行为,我如何防止这种情况并正确地显示值

根据要求,提供示例代码。在-tag中的某处:

在MXML中:

<mx:HTTPService id="contactsService" url="http://some/url/" method="GET" useProxy="false"/>
<mx:ComboBox prompt="Select phone number" dataProvider="{contactsService.lastResult.contacts.contact}" labelField="phonenumber" id="contactsComboBox"/>


这是一个相当简单的设置。

您可能正在将它们转换为代码中的某个数值。如果您确保它们是字符串值,则加号不应消失。

我刚刚尝试用
%2B
重新标记加号
+
,成功了


希望它对您有用。

操作脚本是强类型的,除非您在上面运行函数,否则文本就是文本。除非对数字运行函数,否则数字就是数字

直到您开始处理XML为止。e4x不是强类型的,因此它最好根据那里的数据确定类型


您可以通过循环遍历XML并使用toString()函数将值放入数组来解决问题。然后使用该数组填充组合框。

无法复制。您可以将解析http服务结果的代码发布到dataprovider中吗?再次无法复制。我尝试了
+2654321+98753+321864
,所有东西都显示得很有魅力。这可能是特定版本的吗?我使用Flex Builder 3您是否尝试过调试,以确保从服务返回的值是正确的?也许您的bakcend代码正在发送不带加号的值-可能将它们转换为整数。值得一试。我可以自己从服务中请求XML,它肯定包含正确的信息。但这不会给其他数字带来错误(或使它们变为NaN)?我不理解你的问题。电话号码并不是真正的数字,所以确保它们以字符串形式存储应该不会有问题。如何将受影响的列定义为字符串数据而不是数字数据?
<mx:HTTPService id="contactsService" url="http://some/url/" method="GET" useProxy="false"/>
<mx:ComboBox prompt="Select phone number" dataProvider="{contactsService.lastResult.contacts.contact}" labelField="phonenumber" id="contactsComboBox"/>