2009-10-27 36 views
0

在處理回發時,我在網頁上發現了奇怪的問題。這裏是錯誤將解釋說明:「指定的參數超出了有效值的範圍」。在使用Infragistics的Postback過程中WebDialogWindow

錯誤: 指定的參數超出有效值的範圍。 參數名稱:值 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.ArgumentOutOfRangeException:指定的參數超出了有效值的範圍。 參數名稱:值

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

堆棧跟蹤:

[ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: value]
System.Web.UI.WebControls.Unit..ctor(String value, CultureInfo culture, UnitType defaultType) +8670188
System.Web.UI.WebControls.Unit.Parse(String s, CultureInfo culture) +31
Infragistics.Web.UI.Framework.ControlObject.ConvertToUnit(Object obj, Unit def, Boolean allowNegative) +399 Infragistics.Web.UI.LayoutControls.WebDialogWindow.get_Top() +74 Infragistics.Web.UI.LayoutControls.DialogWindowBot.LoadClientPropsTransactionList(Dictionary`2 list) +350
Infragistics.Web.UI.Framework.ObjectBase.LoadTransactionList(Boolean deferLoadPostDataProcessing) +57
Infragistics.Web.UI.Framework.RunBot.LoadClientData() +57 Infragistics.Web.UI.Framework.RunBot.HandleLoadPostData(String postDataKey, NameValueCollection postCollection) +14
Infragistics.Web.UI.Framework.ControlMain.LoadPostData(String postDataKey, NameValueCollection postCollection) +19
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +693
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1743

解說

如果你看一下堆棧跟蹤,我們伊斯利看到.NET仍然AINT通throught我的代碼,所以我不能把任何斷點。更奇怪的是,對於完全相同的過程,但有不同的數據(在我的頁面上),它工作得很好。請幫助我,即時消息約3小時!

UPDATE

我不得不說的是,當它失敗(現在只有2像30出頭測試對象),它不能只回發。它成爲頁面上使用:Infragistics webdialogwindow和webcontrol來處理「可見」像屬性(隱藏或正常不是大小)。但正如有人所說以下(抱歉,不記得你的名字),這是肯定的關於向webdialogwindow,但我就是不處理它的位置...

更新2

我們」我試圖從數據庫中刪除varchar(max)列的值,現在它工作'!哇,我們不知道該怎麼想,因爲每一個看起來都不錯。問題是,我們必須保持此列的價值!任何人都知道該怎麼想?這個varchar(max)在數據列表中顯示爲Eval(「DescriptionMemo」)。

+0

非常感謝:P – 2009-10-27 18:46:46

+2

這是你的問題,「完全相同的過程,但有不同的數據(在我的頁面上),它的工作原理很好。」數據如何不同? – 2009-10-27 19:02:09

+0

它與不同實體相關的「後貼式」表格。刪除所有描述(更新2)後,它可以工作。該字段是一個varchar(max)字段。 varchar(max)如何使我的代碼崩潰? – 2009-10-27 19:15:14

回答

1

鑑於您的更新,這裏有一個受過教育的猜測。

我對Infragistics WebDialog組件的瞭解不多,但大多數對話框都是,以頁面中心爲中心。如果您的列與對話框的位置有關,則可能是基於正在顯示的數據的大小來計算對話框的位置。

如果數據太大而無法顯示,則可能會將對話框置於理論上超出Unit類型的可接受值範圍邊界的位置。

如果該列是隱藏的,一切都很好,因爲對話框將適合窗口,並且座標(特別是頂部座標,如堆棧跟蹤中所示)將爲負值。如果顯示該對話框,則該對話框不會,因爲它將超出瀏覽器窗口的範圍。

這些都只是理論和猜測,但它是基於我們在這裏可以看到的。

+0

不,你的總體權利。因爲彈出窗口放在頁面的底部,因爲它不關心它在頁面上的任何地方(無論如何它是一個彈出窗口),所以當它試圖「集中」它並且頁面顯示大量數據時(以及那些正是我遇到的問題,因爲它發現了「偶然」錯誤),它無法在短時間內發生不兼容的轉換(-32767和+32767) – 2009-10-28 12:23:11

+1

很高興能爲您提供幫助!有趣的是,Unit類將Int32作爲參數,然後在參數超出Short的範圍時拋出。我必須爲Jon Skeet糾纏一下。 – 2009-10-28 12:50:59

+0

是的,它意味着2人,每人4小時解決一個難以發現的問題:o(而不是我們的錯。 – 2009-10-28 17:25:20

1

您正在調用System.Web.UI.WebControls.Unit的構造函數時使用了無效的參數集或以某種方式初始化了此錯誤。

你是否在你的aspx頁面的WebControl上的某處設置了一個單元?

+0

對不起,也許我會看起來像新手,但你的意思是關於網站控制單元...我看到了但不知道該怎麼想。我不得不說,我是法國人,所以它的正常,如果有些話看起來對我來說沒什麼大聲笑。但是第一次我得到這個錯誤。 – 2009-10-27 18:53:34

+0

@Simon您作爲單位發送什麼值? – 2009-10-27 19:02:43

+0

我不會將任何單位傳遞給任何東西......但在頁面上肯定是這樣,但對於所有使用不同請求的所有相同控件的控件,當其他作品使用同一控件時總是失敗... – 2009-10-27 19:05:18

0

根據MSDN,當value參數超出範圍(不在-32768和32767之間)時,Unit類的構造函數拋出ArgumentOutOfRangeException。不知何故,這是傳遞給頁面上該元素的值。

現在,你已經說過你在不同的請求中傳遞了不同的值,並且這些請求都有效。你通過這項工作的價值是什麼?你通過失敗的價值是什麼?

編輯:我看到你正在使用Infragistics WebDialogWindow,並且你正在嘗試獲取對話框的最高座標。這是關閉的座標。它超出Unit類的有效值範圍。現在最大的問題是這是爲什麼呢?

+0

哇!它使所有.net無法出錯?爲什麼它不僅是一個JavaScript錯誤? – 2009-10-27 18:58:48

+0

因爲它發生在*服務器*上,所以在頁面呈現在瀏覽器中之前。 – 2009-10-27 19:00:39

+0

在這一點上,甚至沒有呈現HTML; .NET仍然試圖將所有需要的類放在一起來決定如何創建頁面。但它*不能*創建這些類,因爲它們中的一個具有無效的構造函數參數。 – 2009-10-27 19:02:13

1

我的猜測是,你要發送的東西不能解析:

System.Web.UI.WebControls.Unit..ctor(字符串值,CultureInfo的文化,UNITTYPE DefaultType的)

How to: Set Web Server Control Unit Properties

+0

是的,我在想什麼,但所有的頁面有時間做它的OnInit();事件。在它失敗之後 – 2009-10-27 18:56:47

+0

Simon,您是否正在使用公式移動WebDialogWindow? – 2009-10-27 18:57:50

+0

你能發表一些代碼嗎?我認爲到目前爲止,每個人都知道你爲什麼會出現錯誤,但是我們不能告訴你如何在沒有看到什麼的情況下修復。 – 2009-10-27 18:58:08

0

Wowwwww!沒關係!我只能說: 如果您使用的Infragistics webdialogwindow將IntialLocation設置爲「居中」。把它放在頁面頂部(無論如何它是一個「彈出」,所以它「超過」你的頁面內容)。因爲我的問題是,當頁面有更多的說32000px長度(不知道確切的長度)彈出窗口無法正確定位窗口因爲它不能把它放在一個int32 ...哇。什麼錯誤

相關問題