代码之家  ›  专栏  ›  技术社区  ›  Simon Dugré Metin Atalay

“指定的参数超出了有效值的范围。”在使用Infragistics WebDialogWindow的回发过程中

  •  0
  • Simon Dugré Metin Atalay  · 技术社区  · 16 年前

    在处理回发邮件时,我在网页上遇到了一个非常奇怪的问题。以下是错误将导致的解释:

    指定的参数超出了有效值的范围。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。

    异常详细信息:System.ArgumentOutOfRangeException:指定的参数超出有效值的范围。

    源错误:

    在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别。

    堆栈跟踪:

    [ArgumentOutOfRange异常: 指定的参数超出范围 有效值的范围。参数名称: 价值]
    值,CultureInfo区域性,单位类型 默认类型)+8670188
    System.Web.UI.WebControls.Unit.Parse(字符串 s、 文化信息文化)+31
    Infragistics.Web.UI.Framework.ControlObject.ConvertToUnit(对象 对象,单位定义,布尔allowNegative) +399 Infragistics.Web.UI.LayoutControls.WebDialogWindow.get_Top() +74 Infrastics.Web.UI.LayoutControls.DialogWindowBot.LoadClientPropsTransactionList(字典'2
    Infragistics.Web.UI.Framework.ObjectBase.LoadTransactionList(布尔值
    Infragistics.Web.UI.Framework.RunBot.LoadClientData() postDataKey,NameValueCollection 收集后)+14
    Infragistics.Web.UI.Framework.ControlMain.LoadPostData(字符串 postDataKey,NameValueCollection 收集后)+19
    System.Web.UI.Page.ProcessPostData(NameValueCollection
    System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值

    解释

    更新

    我必须说,当它失败时(目前只有2个对象在30个测试对象上),它只在回发时失败。使用:Infragistics webdialogwindow和一个webcontrol来处理类似“可见”的属性(隐藏或正常,而不是大小)。但正如下面有人所说(对不起,我不记得你的名字),关于webdialogwindow是肯定的,但我只是不处理它的位置。。。

    更新2

    我们已经尝试从数据库中删除一个varchar(max)列的值,现在它工作了!!哇,我们不知道该怎么想,因为一切看起来都很好。问题是我们 保持此列的值!!!有人知道该怎么想吗?这个varchar(max)在数据列表上显示为Eval(“DescriptionMemo”)。

    5 回复  |  直到 8 年前
        1
  •  1
  •   Mike Hofer    16 年前

    根据你的最新情况,这里有一个有根据的猜测。

    我对基础设施WebDialog组件了解不多,但大多数对话框都是 居中的 在页面上。如果您的列与对话框的位置有关,则可能是基于 正在显示的数据的。

    如果数据太大而无法显示,则可能会将对话框置于理论上超出Unit类可接受值范围的位置。

    如果列被隐藏,则一切正常,因为对话框将适合窗口,并且坐标(特别是顶部坐标,如堆栈跟踪中所示)将为负值。如果它被显示,对话框将不会显示,因为它将超出浏览器窗口的范围。

    这只是理论和推测,但它是基于我们在这里看到的。

        2
  •  1
  •   Chris Ballance    16 年前

    您正在为调用构造函数 System.Web.UI.WebControls.Unit 设置了无效的参数,或以某种方式不正确地初始化此参数。

    您是否在您的aspx页面的某个WebControl上设置了一个单元?

        3
  •  1
  •   rick schott    16 年前

    我猜您正在发送无法解析的内容:

    System.Web.UI.WebControls.Unit..ctor( 字符串值 ,CultureInfo区域性,单位类型(默认类型)

    How to: Set Web Server Control Unit Properties

        4
  •  0
  •   Mike Hofer    16 年前

    MSDN ,当值参数超出范围(不在-32768和32767之间)时,单元类的构造函数将引发ArgumentOutOfRangeException。不知何故,这就是传递给页面上该元素的值。

    现在,您已经说过,您正在不同的请求中传递不同的值,并且这些请求可以工作。您传递给该工作的价值观是什么?您通过哪些值而失败?

        5
  •  0
  •   Simon Dugré Metin Atalay    16 年前

    如果您正在使用Infragistics webdialogwindow,且IntialLocation设置为“居中”。把它放在你的页面顶部(不管怎样,它是一个“弹出窗口”,所以它“覆盖”了”你的页面内容)。因为我的问题是,当页面有超过32000px长度(不知道确切长度)的弹出窗口时,无法正确定位窗口,因为它无法将其放入int32。。。哇!真讨厌

    推荐文章