Посоченият аргумент беше извън обхвата на валидните стойности. В процеса на Postback с помощта на Infragistics WebDialogWindow

Имам наистина странен проблем на уеб страница, когато обработвам публикация обратно. Ето грешката ще последва обяснение:

Грешка: Посоченият аргумент беше извън обхвата на валидните стойности. Име на параметър: стойност Описание: Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Моля, прегледайте проследяването на стека за повече информация относно грешката и откъде произлиза в кода.

Подробности за изключение: System.ArgumentOutOfRangeException: Посоченият аргумент беше извън обхвата на валидните стойности. Име на параметъра: стойност

Грешка в източника:

Генерирано е необработено изключение по време на изпълнението на текущата уеб заявка. Информация относно произхода и местоположението на изключението може да бъде идентифицирана с помощта на проследяването на стека на изключението по-долу.

Проследяване на стека:

[ArgumentOutOfRangeException: Посоченият аргумент беше извън обхвата на валидните стойности. Име на параметър: стойност]
System.Web.UI.WebControls.Unit..ctor(Стойност на низ, CultureInfo култура, UnitType defaultType) +8670188
System.Web.UI.WebControls.Unit.Parse(Низ s, CultureInfo култура) +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
система .Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +693
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1743

Обяснение

Ако погледнете проследяването на стека, лесно виждаме, че .NET все още не преминава през моя код, така че не мога да поставя точка на прекъсване. Нещо по-странно е, че за ТОЧНО същия процес, но с различни данни (на моята страница), той работи доста добре. Моля, помогнете ми, работя около 3 часа!

АКТУАЛИЗАЦИЯ

Трябва да кажа, че когато се провали (засега само 2 обекта от нещо като 30 тествани), той се провали САМО при обратна връзка. Става на страницата, че с помощта на: Infragistics webdialogwindow и уеб контрола за обработка на свойството „видимо“ като (Скрито или нормално, а не размера). Но както някой каза по-долу (съжалявам, не помня името ви), със сигурност е по отношение на уебдиалоговия прозорец, но просто НЕ се справям с позицията му ...

АКТУАЛИЗАЦИЯ 2

Опитахме се да премахнем стойността на колона varchar(max) от базата данни и сега тя работи!! Уау, не знаем какво да мислим, защото всичко изглежда наред. Проблемът е, че ТРЯБВА да запазим стойността на тази колона!!! Някой знае ли какво да мисли за това? Тази varchar(max) се показва като Eval("DescriptionMemo") в списък с данни.


person Simon Dugré    schedule 27.10.2009    source източник
comment
Това е вашият проблем, ТОЧНО същият процес, но с различни данни (на моята страница), той работи доста добре. Как се различават данните?   -  person rick schott    schedule 27.10.2009
comment
Това е таблица, подобна на post-it, свързана с различни обекти. След премахване на цялото описание (актуализация 2) работи. Това поле е varchar(max) поле. Как може varchar(max) да накара кода ми да се срине?   -  person Simon Dugré    schedule 27.10.2009


Отговори (5)


Като се има предвид вашата актуализация, ето обосновано предположение.

Не знам много за компонента Infragistics WebDialog, но повечето диалогови прозорци са центрирани на страницата. Ако вашата колона има нещо общо с позиционирането на диалоговия прозорец, тя може да изчислява позицията на диалоговия прозорец въз основа на размера на данните, които се показват.

Ако данните са твърде големи за показване, това може да постави диалоговия прозорец на позиция, която теоретично е извън границите на допустимия диапазон от стойности на класа Unit.

Ако колоната е скрита, всичко е наред, тъй като диалоговият прозорец ще се побере в прозореца и координатите (по-специално Горната координата, както е показано във вашето трасиране на стека) ще бъдат отрицателни. Ако се покаже, диалоговият прозорец не би, защото ще се простира извън границите на прозореца на браузъра.

Всичко това е само теория и спекулации, но се основава на това, което можем да видим тук.

person Mike Hofer    schedule 27.10.2009
comment
Не, напълно си прав. Тъй като изскачащият прозорец беше изпуснат в долната част на страницата, защото не го интересува къде е бил на страницата (все пак е изскачащ прозорец), така че когато се опита да го центрира и страницата показва много данни (и точно това е проблем, който имах, защото от време на време улавя грешката) не успява да направи несъвместимо преобразуване за кратко (-32767 и +32767) - person Simon Dugré; 28.10.2009
comment
Радвам се, че мога да помогна! Интересно е, че класът Unit приема Int32 като аргумент и след това хвърля, когато аргументите са извън границите за Short. Ще трябва да досаждам на Джон Скийт за това. - person Mike Hofer; 28.10.2009
comment
Да, това означава 2-ма души и около 4 часа всеки за решаване на труден за намиране проблем :o( и не по наша вина. - person Simon Dugré; 28.10.2009
comment
В моя случай посочвах грешни папки. След като поставих папки в root, всичко работи добре - person Muhammad Ali; 31.01.2020

Извиквате конструктора за System.Web.UI.WebControls.Unit с невалиден набор от параметри или по някакъв начин инициализирате това неправилно.

Задавате ли единица някъде в WebControl във вашата aspx страница?

person Chris Ballance    schedule 27.10.2009
comment
Съжалявам, може би ще изглеждам като начинаещ, но това, което имате предвид за Unit of Webcontrol ... видях това като, но не знам какво да мисля за това. Трябва да кажа, че съм французин, така че е нормално, ако някои думи не ми приличат на нищо хаха. Но за първи път получавам тази грешка. - person Simon Dugré; 27.10.2009
comment
@Simon Каква стойност изпращате като единица? - person Chris Ballance; 27.10.2009
comment
Не предавам никаква единица на нищо ... но да, със сигурност на страницата, но за всички контроли, които използват една и съща контрола при различна заявка, винаги СЪЩИЯТ се проваля, когато други работят... - person Simon Dugré; 27.10.2009
comment
Не мога, твърде дълго е!! Това е страница asp.net плюс .ascx. - person Simon Dugré; 27.10.2009

Предполагам, че изпращате нещо, което не може да анализира:

System.Web.UI.WebControls.Unit..ctor(Стойност на низ, CultureInfo култура, UnitType defaultType)

Как да: Зададете свойства на контролния модул на уеб сървър

person rick schott    schedule 27.10.2009
comment
Да, това е, за което си мисля, но всяка страница има време да направи своя OnInit(); събития. След това, което се проваля - person Simon Dugré; 27.10.2009
comment
Саймън, премествате WebDialogWindow с помощта на формула ли? - person Mike Hofer; 27.10.2009
comment
Можете ли да публикувате някакъв код? Мисля, че всички досега знаят защо имате грешка, но не можем да ви кажем какво да коригирате, без да видим нещо. - person rick schott; 27.10.2009
comment
Ще обясня повече в основния си пост. Но не мога да публикувам целия си код, защото със сигурност има ТВЪРДЕ МНОГО и не моят код бъгва, той се проваля, преди да влезе. - person Simon Dugré; 27.10.2009

Според MSDN, ArgumentOutOfRangeException се хвърля от конструктора на класа Unit, когато стойността на аргумента е извън диапазона (не е между -32768 и 32767). По някакъв начин това е стойността, която се предава на този елемент на страницата.

Сега казахте, че предавате различни стойности в различни заявки и че тези заявки работят. Какви са ценностите, които предавате в тази работа? Кои са стойностите, които преминавате и които се провалят?

РЕДАКТИРАНЕ: Виждам, че използвате Infragistics WebDialogWindow и че се опитвате да получите най-горната координата на диалоговия прозорец. ТОВА е координатата, която е изключена. Това е извън валидния диапазон от стойности за класа единица. Големият въпрос сега е защо е така?

person Mike Hofer    schedule 27.10.2009
comment
Еха! И това прави всички .net неуспешни грешки? Защо това не е само грешка в Javascript? - person Simon Dugré; 27.10.2009
comment
Тъй като това се случва на сървъра, преди страницата да бъде изобразена в браузъра. - person Mike Hofer; 27.10.2009
comment
На този етап нито един от HTML дори не е изобразен; .NET все още се опитва да събере всички класове, от които се нуждае, за да реши как да създаде страницата. Но не може да създаде класовете, защото един от тях има невалиден параметър на конструктора. - person Mike Hofer; 27.10.2009

Уаууууу! Всичко е наред! Всичко, което мога да кажа е: Ако използвате Infragistics webdialogwindow с IntialLocation, зададено на „Centered“. Поставете го в горната част на страницата си (Това така или иначе е „изскачащ прозорец“, така че е „над“ съдържанието на страницата ви). Тъй като проблемът ми беше, че когато страницата има, казва повече, че изскачащият прозорец с дължина 32000px (не знам точната дължина) не можа да намери правилно прозореца, защото не може да го постави в int32... уау. Каква грешка

person Simon Dugré    schedule 27.10.2009