0

更改数量值后尝试单击表单上的按钮时出现以下错误。密钥和数量已正确设置(正如我在调试过程中看到的那样)。

我不知道为什么我收到错误....

The value "1" is not of type "System.Int32" and cannot be used in this generic collection.
Parameter name: value

我在网上查看了这条消息,但我读到的任何内容都无法解释问题所在。

我的字典对象设置如下。请注意,我尝试将类型更改为字符串,字符串,并且出现(上)相同的消息,除了代替"System.Int32", "System.String"

PageData["ClientSelectedQtyRows"] = new Dictionary<string, Int32>();

这是我在屏幕上更改数量值时触发的 JS:

function UpdateQtySelection(key, qty) {
            if (key) {
                var dict = PageDataClient.Get("ClientSelectedQtyRows");
                dict[key] = qty;
                PageDataClient.Set("ClientSelectedQtyRows", dict);
            }
        }

在调试期间,字典对象在我更改数量后包含正确的值。

?dict[key]
1

?PageDataClient.Get("ClientSelectedQtyRows")
{...}
    [prototype]: {...}
    [41769]: 1
    [prototype]: [] 

打印按钮的标记如下:

<td style="padding-right: 10px;">
                                    <dx:ASPxButton ID="btnPrint" Text="Print" runat="server" ClientInstanceName="btnPrintClient" CausesValidation="false" ValidationGroup="CS" Theme="PlasticBlue" AutoPostBack="false" Enabled="false">
                                        <ClientSideEvents Click="function (s,e) { PerformCallback('1:'); btnPrintClient.disabled = true; btnSearchClient.disabled = true; }" />
                                    </dx:ASPxButton>
                                </td>
4

1 回答 1

0

由于 ASPXHiddenField 不支持字典对象中的整数,因此我将其设置为 .

在 JS 函数期间,我错过了一件事情要做。

我将值更改为:

dict[key] = parseInt(数量, 10);

dict[key] = qty.toString();

这解决了这个问题......

于 2013-09-09T16:44:16.723 回答